啟動守護式容器
docker run -d 容器名
- 使用鏡像centos:latest以背景模式啟動一個容器
docker run -d centos
- 問題:然後docker ps -a 進行檢視, 會發現容器已經退出,很重要的要說明的一點: Docker容器背景運作,就必須有一個前台程序.容器運作的指令如果不是那些一直挂起的指令(比如運作top,tail),就是會自動退出的。
- 這個是docker的機制問題,比如你的web容器,我們以nginx為例,正常情況下,我們配置啟動服務隻需要啟動響應的service即可。例如:
,但是,這樣做,nginx為背景程序模式運作,就導docker前台沒有運作的應用,這樣的容器背景啟動後,會立即自殺因為他覺得他沒事可做了.是以,最佳的解決方案是,将你要運作的程式以前台程序的形式運作service nginx start
- 注意: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形式描述的鍵值對
進入正在運作的容器并以指令行互動
案例:kill以前的centos容器,重新啟動新的啟動互動式容器centos,ctrl+P+Q:容器不停止退出。
然後重新進入剛才沒有停止退出的centos容器
重新進入:docker attach 容器ID
- 對主控端裡的容器鏡像進行操作
-
docker exec -it 容器ID bashShell
exec:執行
docker exec -t 2c5a0cb54cc1 ls -l /tmp
上述兩個差別:
attach 直接進入容器啟動指令的終端,不會啟動新的程序
exec 是在容器中打開新的終端,并且可以啟動新的程序
docker exec -it 2c5a0cb54cc1 /bin/bash
這個指令還可以這樣進入到容器鏡像操作,類似于attach,進入容器後再可以檢視。是以exec比attach指令強大。
這個時候使用exit指令退出容器時,容器并不會停止退出
可以使用kill結束程序
從容器内拷貝檔案到主機上
docker cp 容器ID:容器内路徑 目的主機路徑
案例:把centos鏡像中的ks-script-0n44nrd1拷貝到主控端的root下,拷貝的時候也可以改名
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 # 截取容器停止時的退出狀态值
本文來自部落格園,作者:兮動人,轉載請注明原文連結:https://www.cnblogs.com/xdr630/p/14073754.html