天天看點

Docker容器指令(二)

啟動守護式容器

docker run -d 容器名
           
  • 使用鏡像centos:latest以背景模式啟動一個容器
docker run -d centos
           
  • 問題:然後docker ps -a 進行檢視, 會發現容器已經退出,很重要的要說明的一點: Docker容器背景運作,就必須有一個前台程序.容器運作的指令如果不是那些一直挂起的指令(比如運作top,tail),就是會自動退出的。
  • 這個是docker的機制問題,比如你的web容器,我們以nginx為例,正常情況下,我們配置啟動服務隻需要啟動響應的service即可。例如:

    service nginx start

    ,但是,這樣做,nginx為背景程序模式運作,就導docker前台沒有運作的應用,這樣的容器背景啟動後,會立即自殺因為他覺得他沒事可做了.是以,最佳的解決方案是,将你要運作的程式以前台程序的形式運作
  • 注意:docker傳遞時都會 傳回個虛拟的終端号
Docker容器指令(二)

檢視容器日志

docker logs -f -t --tail 容器ID
           
  • -t 是加入時間戳
  • -f 跟随最新的日志列印
  • --tail 數字 顯示最後多少條
docker run -d centos /bin/sh -c "while true;do echo hello zzyy;sleep 2;done"
           
Docker容器指令(二)
Docker容器指令(二)
  • 每個兩秒鐘列印日志的變化
    Docker容器指令(二)
    Docker容器指令(二)
    Docker容器指令(二)

檢視容器内運作的程序

docker top 容器ID
           
Docker容器指令(二)

檢視容器内部細節

docker inspect 容器ID
           

以json形式描述的鍵值對

Docker容器指令(二)

進入正在運作的容器并以指令行互動

案例:kill以前的centos容器,重新啟動新的啟動互動式容器centos,ctrl+P+Q:容器不停止退出。

Docker容器指令(二)

然後重新進入剛才沒有停止退出的centos容器

重新進入:docker attach 容器ID
           
Docker容器指令(二)
  • 對主控端裡的容器鏡像進行操作
  • docker exec -it 容器ID bashShell

    exec:執行

docker exec -t 2c5a0cb54cc1 ls -l /tmp
           
Docker容器指令(二)

上述兩個差別:

attach 直接進入容器啟動指令的終端,不會啟動新的程序

exec 是在容器中打開新的終端,并且可以啟動新的程序

docker exec -it 2c5a0cb54cc1 /bin/bash
           

這個指令還可以這樣進入到容器鏡像操作,類似于attach,進入容器後再可以檢視。是以exec比attach指令強大。

Docker容器指令(二)

這個時候使用exit指令退出容器時,容器并不會停止退出

Docker容器指令(二)

可以使用kill結束程序

Docker容器指令(二)

從容器内拷貝檔案到主機上

docker cp 容器ID:容器内路徑 目的主機路徑

Docker容器指令(二)

案例:把centos鏡像中的ks-script-0n44nrd1拷貝到主控端的root下,拷貝的時候也可以改名

Docker容器指令(二)
docker cp 3f4bcf256fae:/tmp/ks-script-0n44nrd1 /root
           
Docker容器指令(二)

小總結

  • 常用指令
    Docker容器指令(二)
attach    Attach to a running container                 # 目前 shell 下 attach 連接配接指定運作鏡像
build     Build an image from a Dockerfile              # 通過 Dockerfile 定制鏡像
commit    Create a new image from a container changes   # 送出目前容器為新的鏡像
cp        Copy files/folders from the containers filesystem to the host path   #從容器中拷貝指定檔案或者目錄到主控端中
create    Create a new container                        # 建立一個新的容器,同 run,但不啟動容器
diff      Inspect changes on a container's filesystem   # 檢視 docker 容器變化
events    Get real time events from the server          # 從 docker 服務擷取容器實時事件
exec      Run a command in an existing container        # 在已存在的容器上運作指令
export    Stream the contents of a container as a tar archive   # 導出容器的内容流作為一個 tar 歸檔檔案[對應 import ]
history   Show the history of an image                  # 展示一個鏡像形成曆史
images    List images                                   # 列出系統目前鏡像
import    Create a new filesystem image from the contents of a tarball # 從tar包中的内容建立一個新的檔案系統映像[對應export]
info      Display system-wide information               # 顯示系統相關資訊
inspect   Return low-level information on a container   # 檢視容器詳細資訊
kill      Kill a running container                      # kill 指定 docker 容器
load      Load an image from a tar archive              # 從一個 tar 包中加載一個鏡像[對應 save]
login     Register or Login to the docker registry server    # 注冊或者登陸一個 docker 源伺服器
logout    Log out from a Docker registry server          # 從目前 Docker registry 退出
logs      Fetch the logs of a container                 # 輸出目前容器日志資訊
port      Lookup the public-facing port which is NAT-ed to PRIVATE_PORT    # 檢視映射端口對應的容器内部源端口
pause     Pause all processes within a container        # 暫停容器
ps        List containers                               # 列出容器清單
pull      Pull an image or a repository from the docker registry server   # 從docker鏡像源伺服器拉取指定鏡像或者庫鏡像
push      Push an image or a repository to the docker registry server    # 推送指定鏡像或者庫鏡像至docker源伺服器
restart   Restart a running container                   # 重新開機運作的容器
rm        Remove one or more containers                 # 移除一個或者多個容器
rmi       Remove one or more images             # 移除一個或多個鏡像[無容器使用該鏡像才可删除,否則需删除相關容器才可繼續或 -f 強制删除]
run       Run a command in a new container              # 建立一個新的容器并運作一個指令
save      Save an image to a tar archive                # 儲存一個鏡像為一個 tar 包[對應 load]
search    Search for an image on the Docker Hub         # 在 docker hub 中搜尋鏡像
start     Start a stopped containers                    # 啟動容器
stop      Stop a running containers                     # 停止容器
tag       Tag an image into a repository                # 給源中鏡像打标簽
top       Lookup the running processes of a container   # 檢視容器中運作的程序資訊
unpause   Unpause a paused container                    # 取消暫停容器
version   Show the docker version information           # 檢視 docker 版本号
wait      Block until a container stops, then print its exit code   # 截取容器停止時的退出狀态值

           

本文來自部落格園,作者:兮動人,轉載請注明原文連結:https://www.cnblogs.com/xdr630/p/14073754.html