這篇文章主要介紹Docker中有哪些使用技巧,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
拉薩ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
得到最后執(zhí)行的容器的ID
$ ID=$(docker run ubuntu echo hello world) hello world $ docker commit $ID helloword
如果這樣覺(jué)得麻煩,你可以這樣:
$ alias dl='docker ps -l -q' $ docker run ubuntu echo hello word hello world $ dl 1904cf045887 $ docker commit `dl` helloworld fd08a884dc79
嘗試在shell制作Docker鏡像
$ docker run -i -t ubuntu bash root@db0c3978af8:/# apt-get install postgresql root@db0c3978af8:/# exit $ docker commit -run='{"Cmd":["postgres","-too -many -opts"]}' `dl` postgres 507611232efc0
去除sudo
# 添加docker組 $ sudo groupadd docker # 將自己添加到組中 $ sudo gpasswd -a myusername docker # 重啟Docker守護(hù)進(jìn)程 $ sudo service docker restart # 退出,再登錄 $ exit
刪除所有已經(jīng)停止的容器
$ docker rm $(docker ps -a -q)
轉(zhuǎn)化docker inspect輸出
$ docker inspect `dl` | grep IPAddress | cut -d '"' -f 4 172.17.0.52 $ docker inspect `dl1` | jq -r '.[0].NetworkSettings.IPAddress' 172.17.0.52
查看鏡像內(nèi)的環(huán)境變量有哪些
$ docker run ubuntu env HOME=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin container=lxc HOSTNAME=5e150b7fef22
RUN 與 CMD的區(qū)別
FROM ubuntu # 執(zhí)行docker build時(shí)會(huì)執(zhí)行下面這些: RUN apt-get update RUN apt-get install softwres # 執(zhí)行docker run時(shí)會(huì)執(zhí)行默認(rèn)執(zhí)行: CMD ["softwares"]
CMD 與ENTRYPOINT的區(qū)別
$ cat Dockerfile FROM ubuntu CMD ["echo"] $ coker run imagename echo hello hello $ cat Dockerfile FROM ubuntu ENTRYPOINT ["echo"] $ coker run imagename echo hello echo hello
查看Docker容器的IP
$ ip -4 -o addr show eth0 2: eth0 inet 10.108.1.107/24 brd 10.108.1.255 scope global eth0 $ docker run ubuntu ip -4 -o addr show eth0 83: eth0 inet 172.17.0.4/16 scope global eth0
Docker構(gòu)架:薄CLI客戶端,建立在UNIX socket上的提供REST服務(wù)的守護(hù)進(jìn)程
#像HTTP客戶端一樣連接并使用UNIX socket $ nc -U //var/run/docker.sock GET /images/json HTTP/1.1
注:我執(zhí)行這條命令,沒(méi)見(jiàn)反應(yīng)。不知道為什么。
以圖像的方式查看你的鏡像的依賴
$ docker images -viz | dot -Tpng -o docker.png $ python -m SimpleHTTPServer #打開瀏覽器 # http://machinename:8000/docker.png
注:個(gè)人不是很明白這里
Docker的東西到底存在哪里?
$ sudo su # cd /var/lib/docker # ls -F containers/ graph/ repositories volumes/
graph下存的是鏡像,而文件系統(tǒng)存在 graph/imagesid/layer
Docker源碼
commands.go負(fù)責(zé)命令行客戶端
api.goREST API路由
server.go一個(gè)REST API的實(shí)現(xiàn)
buildfile.goDockerfile的解析器
不要在你的Dockerfile中的RUN指令中執(zhí)行守護(hù)進(jìn)程
$ cat Dockerfile FROM ubuntu:12.04 MAINTAINER Brian Morearty .. RUN pg_ctl start ... $ docker run -i -t postgresimage bash root@4432fe2dd3:/# ps aux # Doesn't show postgres daemon
注:事實(shí)上,可以這樣執(zhí)行RUN pg_ctl start &
容器之間的通信 # 執(zhí)行一個(gè)容器,并分配一個(gè)名字給它 $ docker run -d -name loldb loldbimage
# 執(zhí)行第二個(gè)容器,并連接上第一個(gè)容器,同時(shí)使用別名 $ docker run -link /loldb:cheez otherimage env CHEEZ_PORT=tcp://172.17.0.8:6379 CHEEZ_PORT_1337_TCP=tcp://172.17.0.8:6379 CHEEZ_PORT_1337_TCP_ADDR=172.17.0.12 CHEEZ_PORT_1337_TCP_PORT=6379 CHEEZ_PORT_1337_TCP_PROTO=tcp
注:我不是很明白顯示的那些env是什么意思。
以上是“Docker中有哪些使用技巧”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!