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

溫馨提示×

溫馨提示×

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

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

docker容器的命令及使用

發布時間:2021-08-18 12:02:12 來源:億速云 閱讀:164 作者:chen 欄目:云計算

這篇文章主要介紹“docker容器的命令及使用”,在日常操作中,相信很多人在docker容器的命令及使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”docker容器的命令及使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

docker子命令概覽
子命令分類                             子命令
Docker環境信息              info、version
容器生命周期管理            create、exec、kill、pause、restart、rm、run、start、stop、unpause
鏡像倉庫命令                login、logout、pull、push、 search
鏡像管理                    build、images、import、load、rmi、save、tag、commit
容器運維操作                attach、export、inspect、port、ps、rename、stats、top、wait、cp、diff、update
容器資源管理                volume、network
系統日志信息                events、history、logs
獲取子命令詳細信息
docker COMMAND_NAME –help


Docker容器操作
Docker守護進程綁定到多個地址
  -H tcp://IP:PORT –H unix:///home/docker/docker.sock
基于基礎鏡像運行容器:【base registry為Ubuntu】
docker run –i -t ubuntu /bin/bash
           -i 保證容器中的STDIN是開啟的
           -t 為創建的容器分配一個偽tty終端
          --name CONTAINER_NAME 容器命名
          -d 創建守護式容器
帶標簽的Ubuntu鏡像 ubuntu:12.04
容器啟停
docker start|stop CONTAINER_NAME
docker ps 查看啟動的容器
          -a 查看所有的容器
docker ps –n –x  會顯示最后x個容器,不論容器正在運行還是已經停止
docker attach CONTAINER_NAME  附著到指定的容器上
docker logs COMTAINER_NAME 獲取容器的日志
           -f 參數來監控docker的日志,與tail -f類似
           -t 每條日志加上時間戳
           --tail N 獲取日志的最后N行內容
           --tail 0 –f  來跟蹤某個容器的最新日志,不必讀取整個日志
查看容器內的進程
docker top CONTAINER_NAME
在容器內部運行進程
docker exec –d CONTAINER_NAME COMMAND
            -d 需要運行一個后臺進程
docker exec -i -t CONTAINER_NAME /bin/bash  為執行的進程創建TTY并捕獲STDIN。exit后不會終止容器相當于創建一個新的bash回話。
docker run --restart=always ….
           --restart 會檢查容器的退出代碼,并據此來決定是否要重啟容器,always無論容器的退出代碼是什么,Docker都會自動重啟該容器;on-failure還接受一個可選的重啟次數參數   --restart=on-failure:5  最多重啟5次
深入容器
docker inspect CONTAINER_NAME        會對容器進行詳細的檢查,然后返回其配置信息,包括名稱命令、網絡配置以及很多有用的數據         
                             -f|—format=’{{ .State.Runing }}’   查看日志內容,可以同時制定多個容器
刪除容器
docker rm CONTAINER_NAME
docker rm ‘docker ps -a -q’刪除所有
                       -q 只返回容器的ID
Docker安裝之后,/var/lib/docker存放著docker鏡像,容器以及容器的配置


Docker鏡像操作
列出所有docker鏡像
docker images
拉取鏡像
docker pull registry_name|registry_name:xxx
查找鏡像
docker search registry_name
Docker Hub有兩種類型的倉庫:
    用戶倉庫和頂層倉庫
    用戶倉庫是docker用戶創建的
    頂層倉庫是由docker內部的人來管理的
    Jamturol/puppet
    Jamturol: 用戶名
    puppet:倉庫名

構建鏡像
使用docker commit . 登錄(Docker Hub)操作構建
使用docker build和Dockerfile文件
     docker commit CONTAINER_NAME|ID jamturol/apache2    提交的只是創建容器的鏡像與容器的當前狀態之間有差異的部分

Dockerfile文件
# version: 0.01   注釋
FROM BASE_REGISTRY    # BASE_REGISTRY 作為新鏡像的基礎鏡像
MAINTAINER xxx, “xxx@gmail.com” #鏡像的作者及作者的郵件地址
RUN echo ‘xxx’> /path/to/file   #每條RUN指令都會創建一個新的鏡像層
RUN 。。。   # RUN指令會在shell里使用命令包裝器/bin/sh -c來執行,如果不支持shell或者不希望shell運行,可以使用exec格式的RUN指令。 RUN [ “apt-get”,”install”,”-y”,”nginx” ]
。。。
EXPOSE 80   # Docker該容器內的應用程序將會使用容器的指定端口。可以指定多個EXPOSE指令來向外部公開多個端口。
docker build -t=”jamturol/static_web” .   #運行Dockerfile
              -t 為新鏡像設置了倉庫和名稱
              -t=”jamturol/static_web:v1” 為鏡像設置一個標簽,“鏡像名:標簽”,如果沒有指定任何標簽,Docker會將自動為鏡像設置一個latest標簽
              --no-cache 略過緩存功能,每個包使用最新版本
ENV REFRESHED_AT 2017-07-05   #設置一個名為REFRESHED_AT的環境變量
深入探求鏡像是如何構建出來的
docker history REGISTRY_NAME|ID
從新鏡像啟動一個容器
docker run –d –p 80 --name static_web jamtuol/static_web nginx –g “deamon off;”
       以前臺方式運行nginx,-p公開哪些網絡端口給外部
docker ps –l     查看端口的映射情況
docker port ID 80  查看容器端口的映射情況
            -P  大寫公開在Dockerfile中的EXPOSE設置的所有端口
            -p IP:PORT1:PORT2 將容器的port2端口綁定到宿主機的port1端口上
CMD 指定容器啟動時要運行的命令,   CMD [“/bin/bash”,”-l”]
使用docker run命令可以覆蓋CMD指令
ENTRYPOINT  docker run命令行中指定的任何參數都會被當作參數再次傳遞給ENTRYPOINT指令中指定的命令
ENTRYPOINT [“/usr/sbin/nginx”]
docker run 的--entrypoint標志覆蓋ENTRYPOINT指令
WORKDIR  在容器內部設置一個工作目錄,ENTRYPOINT和CMD指定的程序會在這個目錄下執行,可設置多個
docker run –w /var/log …
                     -w 在運行時覆蓋工作目錄
ENV設置的環境變量,取值為$變量名,這些變量會被持久保存到從我們的鏡像創建的任何容器中
USER  指定該鏡像會以什么樣的用戶去運行
USER nginx  也可以是UID,指定user和group
USER UID
USER user:group
VOLUME [“/opt/project”]   基于此鏡像創建的任何容器,創建一個名為/opt/project的掛載點,也可以指定多個卷 
VOLUME [“/opt/project”,”/data”]
ADD software.lic /opt/application/software.lic   將構建環境下的文件和目錄復制到鏡像中,在安裝應用程序時,會使用Docker通過目的地址參數末尾的字符來判斷文件源是目錄還是文件
COPY conf.d /etc/apache2   把本地conf.d目錄中的文件復制到/etc/apache2/目錄中。copy只關心在構建上下文中復制本地文件,而不會去做文件提取和解壓的工作,如果目的位置不存在,Docker會自動創建所需要的目錄結構
ONBUILD  能為鏡像添加觸發器,當一個鏡像被使用做其他鏡像的基礎鏡像時,該鏡像中的觸發器將會執行,觸發器會在構建過程中插入新指令,可以認為這些指令是緊跟在FROM之后指定的,觸發器可以是任何構建指令
ONBUILD ADD . /opp/src
ONBUILD RUN cd /app/src && make


鏡像打包及導入相關操作
打包一個鏡像
docker save REPO_NAME:TAG > filename.tar
docker load < filename.tar  加載一個鏡像
刪除鏡像
docker rmi jamtuol/static_web
docker run –v $PWD/website:/var/www/html/website:ro ….
           -v 指定了卷的源目錄(本地宿主機的目錄)和容器里的目的目錄,兩個目錄通過:來分隔,目的目錄不存在,會自動創建,ro或者rw來定讀寫狀態
docker run --link redis:db ...
           --link 標志創建了兩個容器間的父子連接,需要兩個參數一個是要連接的容器名字,另一個是連接后容器的別名
docker run -p 4567 --name webapp --link redis:db -t -i -v $PWD/webapp:/opt/webapp jamturol/sintra /bin/bash
           可以強制docker只允許有連接的容器之間互相通信。需要在啟動docker守護進程時加上--icc=false,關閉所有沒有連接的容器間的通信。被連接的容器必須運行在同一個docker宿主機上
docker run 中加入--dns或者--dns-search為某個容器單獨配置dns
RUN shell.sh   運行shell腳本
可以通過多個文件來執行構建
Dockerfile、shell.sh、var.txt等
docker run --privileged ...
           可以啟動docker特權模式,允許以其宿主機具有的(幾乎)所有能力來運行容器,包括一些內核特性和設備訪問
docker wait CONTAINER_NAME 等待程序退出得到返回碼
docker run --cidfile=/tmp/CONTAINERID.txt
           讓docker截獲容器id并將其存到--cidfile選項指定的文件
docker run --rm ...  會在容器進程運行完畢后,自動刪除容器,對于只用一次的容器和用完即扔的容器很有用
在Dockerfile中指定了VOLUME時,在run對應的鏡像啟動容器,容器中就有對外的掛載點。可以通過inspect看到,如果沒有指定,則沒有對外的掛載點
Dockerfile使用for
RUN for var in v{v..8};do touch $DIRS/$var; done   # DIRS是ENV指定的環境變量
serf是一個去中心化的服務發現和編排的解決方案,特點是輕量級和高可用,同時具備容錯的特性
docker run -p 53:53/udp ...  以udp的方式
docker run -h CONTAINER_host_name 。。。
docker各語言支持多種SDK

到此,關于“docker容器的命令及使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

AI

南澳县| 台北市| 寿阳县| 卢氏县| 吉首市| 商都县| 新疆| 静乐县| 漳州市| 原平市| 儋州市| 怀远县| 青海省| 秭归县| 正宁县| 公安县| 麟游县| 靖安县| 北碚区| 久治县| 财经| 东海县| 长沙县| 赤壁市| 竹溪县| 钦州市| 茶陵县| 太和县| 靖宇县| 突泉县| 前郭尔| 达州市| 汝城县| 东乌珠穆沁旗| 固安县| 巴林左旗| 黄浦区| 康乐县| 婺源县| 玛多县| 肥东县|