中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker中有哪些使用技巧

發布時間:2021-12-13 15:17:27 來源:億速云 閱讀:187 作者:小新 欄目:云計算

這篇文章主要介紹Docker中有哪些使用技巧,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

  1. 得到最后執行的容器的ID

         $ ID=$(docker run ubuntu echo hello world)
         hello world
         $ docker commit $ID helloword


    如果這樣覺得麻煩,你可以這樣:

     	$ alias dl='docker ps -l -q'
     	$ docker run ubuntu echo hello word
     	hello world
     	$ dl
     	1904cf045887
     	$ docker commit `dl` helloworld
     	fd08a884dc79


  2. 嘗試在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


  3. 去除sudo

     # 添加docker組
     $ sudo groupadd docker
    
     # 將自己添加到組中
     $ sudo gpasswd -a myusername docker
    
     # 重啟Docker守護進程 
     $ sudo service docker restart
    
     # 退出,再登錄
     $ exit


  4. 刪除所有已經停止的容器

     $ docker rm $(docker ps -a -q)


  5. 轉化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


  6. 查看鏡像內的環境變量有哪些

     $ docker run ubuntu env
    
     HOME=/
     PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
     container=lxc
     HOSTNAME=5e150b7fef22


  7. RUN 與 CMD的區別

     FROM ubuntu
    
     # 執行docker build時會執行下面這些:
     RUN apt-get update
     RUN apt-get install softwres
    
     # 執行docker run時會執行默認執行:
     CMD ["softwares"]


  8. CMD 與ENTRYPOINT的區別

     $ 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


  9. 查看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


  10. Docker構架:薄CLI客戶端,建立在UNIX socket上的提供REST服務的守護進程

     	#像HTTP客戶端一樣連接并使用UNIX socket
     	$ nc -U //var/run/docker.sock GET /images/json HTTP/1.1


    注:我執行這條命令,沒見反應。不知道為什么。

  11. 以圖像的方式查看你的鏡像的依賴

     $ docker images -viz | dot -Tpng -o docker.png
    
     $ python -m SimpleHTTPServer
    
     #打開瀏覽器
     # http://machinename:8000/docker.png


    注:個人不是很明白這里

  12. Docker的東西到底存在哪里?

     $ sudo su
     # cd /var/lib/docker 
     # ls -F
     containers/ graph/ repositories volumes/


    graph下存的是鏡像,而文件系統存在 graph/imagesid/layer

  13. Docker源碼

    commands.go 負責命令行客戶端

    api.go REST API路由

    server.go 一個REST API的實現

    buildfile.go Dockerfile的解析器

  14. 不要在你的Dockerfile中的RUN指令中執行守護進程

     $ 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


    注:事實上,可以這樣執行RUN pg_ctl start &

  15. 容器之間的通信 # 執行一個容器,并分配一個名字給它 $ docker run -d -name loldb loldbimage

     # 執行第二個容器,并連接上第一個容器,同時使用別名
    
     $ 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中有哪些使用技巧”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

区。| 湖南省| 桂林市| 克什克腾旗| 重庆市| 泰和县| 祁东县| 陆河县| 松溪县| 南澳县| 蓬莱市| 平阴县| 山阳县| 孝感市| 印江| 樟树市| 久治县| 潜江市| 张掖市| 舞钢市| 江达县| 婺源县| 珠海市| 通江县| 门源| 手游| 云和县| 延津县| 肥城市| 兰考县| 定襄县| 万全县| 吴桥县| 精河县| 海口市| 蕲春县| 尤溪县| 扎鲁特旗| 罗江县| 乐平市| 天峻县|