docker tips
DESCRIPTION
Some tips in using dockerTRANSCRIPT
![Page 1: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/1.jpg)
Docker Tips
![Page 2: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/2.jpg)
Need fetch Dockerfile?
![Page 3: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/3.jpg)
Need fetch Dockerfile?• No!
![Page 4: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/4.jpg)
Need fetch Dockerfile?• No!
• docker build https://github.com/menghan/airvideo-server-in-docker.git
![Page 5: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/5.jpg)
Need fetch Dockerfile?• No!
• docker build https://github.com/menghan/airvideo-server-in-docker.git
• docker build https://raw.githubusercontent.com/menghan/menghanrc/master/Dockerfiles/go-builder/Dockerfile
![Page 6: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/6.jpg)
Need fetch Dockerfile?• No!
• docker build https://github.com/menghan/airvideo-server-in-docker.git
• docker build https://raw.githubusercontent.com/menghan/menghanrc/master/Dockerfiles/go-builder/Dockerfile
• | docker build -
![Page 7: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/7.jpg)
Store config in docker image?
![Page 8: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/8.jpg)
Store config in docker image?
• No!
![Page 9: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/9.jpg)
Store config in docker image?
• No!
• volume configs at runtime
![Page 10: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/10.jpg)
Store config in docker image? cont.
![Page 11: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/11.jpg)
Full stack image?
![Page 12: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/12.jpg)
Full stack image?
• No!
![Page 13: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/13.jpg)
Full stack image?
• No!
• size
![Page 14: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/14.jpg)
Full stack image?
• No!
• size
• update frequently
![Page 15: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/15.jpg)
Full stack image? cont.
• use —-link —-volumes-from
![Page 16: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/16.jpg)
Use ONBUILD
![Page 17: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/17.jpg)
Use ONBUILD
# base/Dockerfile
FROM gentoo:base
ONBUILD RUN layman -s douban
ONBUILD RUN eix-layman add douban
ONBUILD RUN eix-sync
![Page 18: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/18.jpg)
Docker as service
• redis
![Page 19: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/19.jpg)
Docker as program
![Page 20: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/20.jpg)
Docker as program
• docker run -v /usr/local:/data menghan/go-builder go get github.com/tools/godep
![Page 21: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/21.jpg)
Docker as program
• docker run -v /usr/local:/data menghan/go-builder go get github.com/tools/godep
• use as much docker as possible
![Page 22: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/22.jpg)
Docker as program
• docker run -v /usr/local:/data menghan/go-builder go get github.com/tools/godep
• use as much docker as possible
• install OS, install docker, pull images, work!
![Page 23: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/23.jpg)
Docker as data
![Page 24: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/24.jpg)
Docker as data
• docker run -v /html —-name jekyll-html-c busybox true
![Page 25: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/25.jpg)
Docker as data
• docker run -v /html —-name jekyll-html-c busybox true
• docker run —-volumes-from jekyll-html-c -v /path/to/src:/src jekyll-image [compile /src and save html /html]
![Page 26: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/26.jpg)
Docker as data
• docker run -v /html —-name jekyll-html-c busybox true
• docker run —-volumes-from jekyll-html-c -v /path/to/src:/src jekyll-image [compile /src and save html /html]
• docker run —-volumes-from jekyll-html-c nginx-image
![Page 27: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/27.jpg)
Docker as data
• docker run -v /html —-name jekyll-html-c busybox true
• docker run —-volumes-from jekyll-html-c -v /path/to/src:/src jekyll-image [compile /src and save html /html]
• docker run —-volumes-from jekyll-html-c nginx-image
• docker run —-volumes-from jekyll-html-c -v $(pwd):/backup backup-image [tar czf /backup/html.tar.gz /html]
![Page 28: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/28.jpg)
Docker as shell
![Page 29: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/29.jpg)
Docker as shell
• We use this pattern a lot!
![Page 30: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/30.jpg)
Docker as shell
• We use this pattern a lot!
• docker run -it [-—rm] ubuntu bash
![Page 31: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/31.jpg)
Docker as shell
• We use this pattern a lot!
• docker run -it [-—rm] ubuntu bash
• start then attach
![Page 32: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/32.jpg)
Docker as shell
• We use this pattern a lot!
• docker run -it [-—rm] ubuntu bash
• start then attach
• docker in docker
![Page 33: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/33.jpg)
Docker as shell
• We use this pattern a lot!
• docker run -it [-—rm] ubuntu bash
• start then attach
• docker in docker
• docker in docker in docker ?…
![Page 34: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/34.jpg)
Docker as net device
• docker run -v /path/config:/etc/config —-name vpn-client openvpn-client [connect]
• docker run —-net=container:vpn-client transmission-image [start transmission service]
![Page 35: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/35.jpg)
Runtime uid
![Page 36: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/36.jpg)
Runtime uidWe have two ways:
![Page 37: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/37.jpg)
Runtime uidWe have two ways:
• use root everywhere (use 1000 everywhere)
![Page 38: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/38.jpg)
Runtime uidWe have two ways:
• use root everywhere (use 1000 everywhere)
• plan && arrange carefully
![Page 39: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/39.jpg)
Runtime uidWe have two ways:
• use root everywhere (use 1000 everywhere)
• plan && arrange carefully
My thought:
![Page 40: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/40.jpg)
Runtime uidWe have two ways:
• use root everywhere (use 1000 everywhere)
• plan && arrange carefully
My thought:
add all possible users into an image, make it as base image
![Page 41: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/41.jpg)
Docker’s latest update (since v1.0)
• .dockerignore (v1.1)
• /etc/{hosts,resolve.conf,hostname} editable (v1.2)
• search private registry
![Page 42: Docker tips](https://reader033.vdocuments.us/reader033/viewer/2022052412/55907bcd1a28aba86f8b47b7/html5/thumbnails/42.jpg)
Q and A