Guest User

Untitled

a guest
Jun 9th, 2018
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.99 KB | None | 0 0
  1. # docker
  2.  
  3. ```sh
  4. docker version
  5. docker info
  6. ```
  7.  
  8. ## run
  9.  
  10. ```sh
  11. docker run hello-world
  12. docker run -p 4000:80 friendlyhello
  13. docker run -d -p 4000:80 friendlyhello
  14. ```
  15.  
  16. ## container
  17.  
  18. ```sh
  19. docker container ls
  20. docker container ls -a
  21. docker container ls -aq
  22. docker container stop <hash> # Gracefully stop the specified container
  23. docker container kill <hash> # Force shutdown of the specified container
  24. docker container rm <hash>
  25. docker container rm $(docker container ls -a -q)
  26. ```
  27.  
  28. ## build images
  29.  
  30. ```sh
  31. docker build -t friendlyhello .
  32.  
  33. docker image ls
  34. docker image ls -a
  35. docker image rm <image id>
  36. docker image rm $(docker image ls -a -q)
  37.  
  38. docker login
  39. docker tag <image> username/repository:tag
  40. docker push username/repository:tag
  41. ```
  42.  
  43. ## compose
  44.  
  45. ```yml
  46. version: "3"
  47. services:
  48. web:
  49. # replace username/repo:tag with your name and image details
  50. image: username/repo:tag
  51. deploy:
  52. replicas: 5
  53. restart_policy:
  54. condition: on-failure
  55. resources:
  56. limits:
  57. cpus: "0.1"
  58. memory: 50M
  59. ports:
  60. - "80:80"
  61. networks:
  62. - webnet
  63. visualizer:
  64. image: dockersamples/visualizer:stable
  65. ports:
  66. - "8080:8080"
  67. volumes:
  68. - "/var/run/docker.sock:/var/run/docker.sock"
  69. deploy:
  70. placement:
  71. constraints: [node.role == manager]
  72. networks:
  73. - webnet
  74. redis:
  75. image: redis
  76. ports:
  77. - "6379:6379"
  78. volumes:
  79. - "/home/docker/data:/data"
  80. deploy:
  81. placement:
  82. constraints: [node.role == manager]
  83. command: redis-server --appendonly yes
  84. networks:
  85. - webnet
  86. networks:
  87. webnet:
  88. ```
  89.  
  90. ## swarm
  91.  
  92. ```sh
  93. docker init
  94. docker swarm leave # Make the worker leave the swarm
  95. docker swarm leave -f # Make master leave, kill swarm
  96. docker swarm join-token -q worker
  97.  
  98. docker node ls
  99. docker node inspect <node ID>
  100. ```
  101.  
  102. ```sh
  103. docker stack ls
  104. docker stack deploy -c <composefile> <appname>
  105. docker stack deploy --with-registry-auth -c <composefile> <appname>
  106. docker stack rm <appname>
  107.  
  108. docker service ls
  109. docker service ps <service>
  110. docker inspect <task or container>
  111. ```
  112.  
  113. ## machine
  114.  
  115. ```sh
  116. docker-machine ls
  117. docker-machine create --driver virtualbox myvm1
  118. docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm1 # Win10
  119. docker-machine start myvm1
  120. docker-machine stop $(docker-machine ls -q) # Stop all running VMs
  121. docker-machine rm $(docker-machine ls -q) # Delete all VMs and their disk images
  122. eval $(docker-machine env -u) # Disconnect shell from VMs, use native docker
  123.  
  124. docker-machine env myvm1 # View basic information about your node
  125. docker-machine ssh myvm1
  126. docker-machine ssh myvm1 "docker stack deploy -c <file> <app>"
  127. docker-machine scp docker-compose.yml myvm1:~
  128. ```
  129.  
  130. ## secret
  131.  
  132. ```sh
  133. docker secret ls
  134. printf "This is a secret" | docker secret create my_secret_data -
  135. docker secret rm my_secret_data
  136. docker service create --name redis --secret my_secret_data redis:alpine
  137. docker service update --secret-rm my_secret_data redis
  138. docker container exec -it $(docker ps --filter name=redis -q) cat /run/secrets/my_secret_data
  139. ```
  140.  
  141. ```sh
  142. docker secret create site.key site.key # will create /run/secrets/site.key
  143. docker secret create site.crt site.crt
  144. docker config create site.conf site.conf
  145. docker secret ls
  146. docker config ls
  147. docker service create \
  148. --name nginx \
  149. --secret site.key \
  150. --secret site.crt \
  151. --config source=site.conf,target=/etc/nginx/conf.d/site.conf,mode=0440 \
  152. --publish published=3000,target=443 \
  153. nginx:latest \
  154. sh -c "exec nginx -g 'daemon off;'"
  155. docker config create site-v2.conf site.conf
  156. docker service update \
  157. --config-rm site.conf \
  158. --config-add source=site-v2.conf,target=/etc/nginx/conf.d/site.conf,mode=0440 \
  159. nginx
  160. docker service rm nginx
  161. docker secret rm site.crt site.key
  162. docker config rm site.conf site-v2.conf
  163. ```
  164.  
  165. ```sh
  166. openssl rand -base64 20 | docker secret create mysql_password -
  167. openssl rand -base64 20 | docker secret create mysql_root_password -
  168. docker network create -d overlay mysql_private
  169. docker service create \
  170. --name mysql \
  171. --replicas 1 \
  172. --network mysql_private \
  173. --mount type=volume,source=mydata,destination=/var/lib/mysql \
  174. --secret source=mysql_root_password,target=mysql_root_password \
  175. --secret source=mysql_password,target=mysql_password \
  176. -e MYSQL_ROOT_PASSWORD_FILE="/run/secrets/mysql_root_password" \
  177. -e MYSQL_PASSWORD_FILE="/run/secrets/mysql_password" \
  178. -e MYSQL_USER="wordpress" \
  179. -e MYSQL_DATABASE="wordpress" \
  180. mysql:latest
  181. docker service create \
  182. --name wordpress \
  183. --replicas 1 \
  184. --network mysql_private \
  185. --publish published=30000,target=80 \
  186. --mount type=volume,source=wpdata,destination=/var/www/html \
  187. --secret source=mysql_password,target=wp_db_password,mode=0400 \
  188. -e WORDPRESS_DB_USER="wordpress" \
  189. -e WORDPRESS_DB_PASSWORD_FILE="/run/secrets/wp_db_password" \
  190. -e WORDPRESS_DB_HOST="mysql:3306" \
  191. -e WORDPRESS_DB_NAME="wordpress" \
  192. wordpress:latest
  193. openssl rand -base64 20 | docker secret create mysql_password_v2 -
  194. docker service update \
  195. --secret-rm mysql_password mysql
  196. docker service update \
  197. --secret-add source=mysql_password,target=old_mysql_password \
  198. --secret-add source=mysql_password_v2,target=mysql_password \
  199. mysql
  200. docker service update \
  201. --secret-rm mysql_password \
  202. --secret-add source=mysql_password_v2,target=wp_db_password,mode=0400 \
  203. wordpress
  204. docker service update \
  205. --secret-rm mysql_password \
  206. mysql
  207. docker secret rm mysql_password
  208. docker service rm wordpress mysql
  209. docker volume rm mydata wpdata
  210. docker secret rm mysql_password_v2 mysql_root_password
  211. ```
  212.  
  213. ```yml
  214. version: '3.1'
  215.  
  216. services:
  217. db:
  218. image: mysql:latest
  219. volumes:
  220. - db_data:/var/lib/mysql
  221. environment:
  222. MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password
  223. MYSQL_DATABASE: wordpress
  224. MYSQL_USER: wordpress
  225. MYSQL_PASSWORD_FILE: /run/secrets/db_password
  226. secrets:
  227. - db_root_password
  228. - db_password
  229.  
  230. wordpress:
  231. depends_on:
  232. - db
  233. image: wordpress:latest
  234. ports:
  235. - "8000:80"
  236. environment:
  237. WORDPRESS_DB_HOST: db:3306
  238. WORDPRESS_DB_USER: wordpress
  239. WORDPRESS_DB_PASSWORD_FILE: /run/secrets/db_password
  240. secrets:
  241. - db_password
  242.  
  243.  
  244. secrets:
  245. db_password:
  246. file: db_password.txt
  247. db_root_password:
  248. file: db_root_password.txt
  249.  
  250. volumes:
  251. db_data:
  252. ```
  253.  
  254. ## config
  255.  
  256. ```sh
  257. echo "This is a config" | docker config create my-config -
  258. docker config ls
  259. docker service create --name redis --config my-config redis:alpine
  260. docker container exec $(docker ps --filter name=redis -q) ls -l /my-config
  261. docker config rm my-config
  262. docker service update --config-rm my-config redis
  263. docker service rm redis
  264. docker config rm my-config
  265.  
  266. docker config create homepage index.html
  267. docker service create
  268. --name my-iis
  269. --publish published=8000,target=8000
  270. --config src=homepage,target="\inetpub\wwwroot\index.html"
  271. microsoft/iis:nanoserver
  272. docker service rm my-iis
  273. docker config rm homepage
  274. ```
Add Comment
Please, Sign In to add comment