Docker容器命令(二)

啓動守護式容器

docker run -d 容器名
  • 使用鏡像centos:latest之後臺模式啓動一個容器
docker run -d centos

在這裏插入圖片描述

  • 問題:而後docker ps -a 進行查看, 會發現容器已經退出,很重要的要說明的一點: Docker容器後臺運行,就必須有一個前臺進程.容器運行的命令若是不是那些一直掛起的命令(好比運行top,tail),就是會自動退出的。nginx

  • 這個是docker的機制問題,好比你的web容器,咱們以nginx爲例,正常狀況下,咱們配置啓動服務只須要啓動響應的service便可。例如:service nginx start,可是,這樣作,nginx爲後臺進程模式運行,就導docker前臺沒有運行的應用,這樣的容器後臺啓動後,會當即自殺由於他以爲他沒事可作了.因此,最佳的解決方案是,將你要運行的程序之前臺進程的形式運行web

  • 注意: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 top 容器ID

在這裏插入圖片描述

查看容器內部細節

docker inspect 容器ID

以json形式描述的鍵值對
在這裏插入圖片描述shell

進入正在運行的容器並以命令行交互

案例:kill之前的centos容器,從新啓動新的啓動交互式容器centos,ctrl+P+Q:容器不中止退出。
在這裏插入圖片描述
而後從新進入剛纔沒有中止退出的centos容器json

從新進入:docker attach 容器ID

在這裏插入圖片描述

  • 對宿主機裏的容器鏡像進行操做
  • docker exec -it 容器ID bashShell
    exec:執行
docker exec -t 2c5a0cb54cc1 ls -l /tmp

在這裏插入圖片描述

上述兩個區別:
attach 直接進入容器啓動命令的終端,不會啓動新的進程
exec 是在容器中打開新的終端,而且能夠啓動新的進程
centos

docker exec -it 2c5a0cb54cc1 /bin/bash

這個命令還能夠這樣進入到容器鏡像操做,相似於attach,進入容器後再能夠查看。因此exec比attach命令強大。
在這裏插入圖片描述
這個時候使用exit命令退出容器時,容器並不會中止退出
在這裏插入圖片描述
可使用kill結束進程
在這裏插入圖片描述bash

從容器內拷貝文件到主機上

docker cp 容器ID:容器內路徑 目的主機路徑服務器

在這裏插入圖片描述
案例:把centos鏡像中的ks-script-0n44nrd1拷貝到宿主機的root下,拷貝的時候也能夠更名
在這裏插入圖片描述ide

docker cp 3f4bcf256fae:/tmp/ks-script-0n44nrd1 /root

在這裏插入圖片描述

小總結

  • 經常使用命令
    在這裏插入圖片描述
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   # 截取容器中止時的退出狀態值
相關文章
相關標籤/搜索