作者 | 步爾斯特
來源 | CSDN部落格

幫助命令
docker version

docker info

docker –help


映象命令
2.1 列出映象
docker images [OPTIONS] [REPOSITORY[:TAG]]

REPOSITORY:表示映象的倉庫源
TAG:映象的標籤
IMAGE ID:映象ID
CREATED:映象創建時間
SIZE:映象大小
同一倉庫源可以有多個 TAG,代表這個倉庫源的不同個版本,我們使用 REPOSITORY:TAG 來定義不同的映象。
如果你不指定一個映象的版本標籤,例如你只使用 ubuntu,docker 將默認使用 ubuntu:latest 映象
OPTIONS說明:
-a :列出本地所有的映象(含中間映像層,默認情況下,過濾掉中間映像層);
–digests :顯示映象的摘要資訊;
-f :顯示滿足條件的映象;
當前支持的過濾配置的key為:
dangling:顯示標記為空的映象,值只有true和false
docker images -f dangling=true
label:這個是根據標籤進行過濾,其中lable的值,是docker在編譯的時候配置的或者在Dockerfile中配置的
before:這個是根據時間來進行過濾,其中before的value表示某個映象構建時間之前的映象列表
docker images -f before=true
since:跟before正好相反,表示的是在某個映象構建之後構建的映象 reference:這個是添加正則進行匹配
docker images -f since=true
reference:這個是添加正則進行匹配
docker images --filter reference=*:*
–format :指定返回值的模板檔案;
docker images --format "{{.ID}}\t{{.Repository}}"

–no-trunc :顯示完整的映象資訊;
-q :只顯示映象ID。
2.2 查找映象
docker search [OPTIONS] TERM
docker search 映象名字
docker search [OPTIONS] 映象名字
–no-trunc : 顯示完整的映象描述
-s : 列出收藏數不小於指定值的映象。
–automated : 只列出 automated build類型的映象;
–filter , -f:基於給定條件過濾輸出
–format:使用模板格式化顯示輸出
–limit:Max number of search results ,預設值25
–no-trunc:禁止截斷輸出
2.3 下載映象
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker pull 映象名字
docker pull 映象名字[:TAG]
2.4 刪除映象
docker rmi [OPTIONS] IMAGE [IMAGE…]
docker rmi -f 映象ID
docker rmi -f 映象名1:TAG 映象名2:TAG
docker rmi -f $(docker images -qa)


容器命令
為了更好的學習和演示,我在這裡下載一個ubuntu的映象:

3.1 創建新容器並運行
docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
OPTIONS說明:
-a stdin: 指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項;
-d: 後臺運行容器,並返回容器ID;
-i: 以互動模式運行容器,通常與 -t 同時使用;
-P: 隨機埠對映,容器內部埠隨機對映到主機的埠
-p: 指定埠對映,格式為:主機(宿主)埠:容器埠
-t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
–name=”nginx-lb”: 為容器指定一個名稱;
–dns 8.8.8.8: 指定容器使用的DNS伺服器,默認和宿主一致;
–dns-search example.com: 指定容器DNS搜尋域名,默認和宿主一致;
-h “mars”: 指定容器的hostname;
-e username=”ritchie”: 設置環境變數;
–env-file=[]: 從指定檔案讀入環境變數;
–cpuset=”0-2″ or –cpuset=”0,1,2″: 綁定容器到指定CPU運行;
-m :設置容器使用記憶體最大值;
–net=”bridge”: 指定容器的網路連接類型,支持 bridge/host/none/container: 四種類型;
–link=[]: 添加連結到另一個容器;
–expose=[]: 開放一個埠或一組埠;
–volume , -v: 綁定一個卷
實例
使用docker映象nginx:latest以後臺模式啟動一個容器,並將容器命名為mynginx。
docker run --name mynginx -d nginx:latest
使用映象nginx:latest以後臺模式啟動一個容器,並將容器的80埠對映到主機隨機埠。
docker run -P -d nginx:latest
使用映象 nginx:latest,以後臺模式啟動一個容器,將容器的 80 埠對映到主機的 80 埠,主機的目錄 /data 對映到容器的 /data。
docker run -p 80:80 -v /data:/data -d nginx:latest
綁定容器的 8080 埠,並將其對映到本地主機 127.0.0.1 的 80 埠上。
docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
使用映象nginx:latest以互動模式啟動一個容器,在容器內執行/bin/bash命令。
docker run -it nginx:latest /bin/bash
啟動互動式容器
docker run -it centos /bin/bash
3.2 列出容器
docker ps [OPTIONS]
OPTIONS說明:
-a :顯示所有的容器,包括未運行的。
-f :根據條件過濾顯示的內容。
–format :指定返回值的模板檔案。
-l :顯示最近創建的容器。
-n :列出最近創建的n個容器。
–no-trunc :不截斷輸出。
-q :靜默模式,只顯示容器編號。
-s :顯示總的檔案大小。
3.3 退出容器
容器停止退出
exit
容器不停止退出
ctrl+P+Q
3.4 啟動容器
docker start 容器ID或者容器名
3.5 重啟容器
docker restart 容器ID或者容器名
3.6 停止容器
docker stop 容器ID或者容器名
3.7 強制停止容器
docker kill 容器ID或者容器名
3.8 刪除已停止的容器
docker rm 容器ID
一次性刪除多個容器:
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
3.9 啟動守護式容器
docker run -d 容器名
使用映象ubuntu:latest以後臺模式啟動一個容器 docker run -d ubuntu
問題:docker ps -a 進行查看, 會發現容器已經退出
很重要的要說明的一點: Docker容器後臺運行,就必須有一個前臺進程.
容器運行的命令如果不是那些 一直掛起的命令 (比如運行top,tail),就是會自動退出的。
這個是docker的機制問題,比如你的web容器,我們以nginx為例,正常情況下,我們配置啟動服務只需要啟動響應的service即可。
例如 service nginx start
但是,這樣做,nginx為後臺進程模式運行,就導致docker前臺沒有運行的應用,
這樣的容器後臺啟動後,會立即自殺因為他覺得他沒事可做了.
所以,最佳的解決方案是,將你要運行的程序以前臺進程的形式運行
3.10 查看容器日誌
docker logs -f -t –tail 容器ID
-t 是加入時間戳
-f 跟隨最新的日誌列印
–tail 數字 顯示最後多少條
3.11 查看容器內運行的進程
docker top 容器ID
3.12 查看容器內部細節
docker inspect 容器ID
3.13 進入正在運行的容器並以命令列互動
docker exec -it 容器ID bash
重新進入docker attach 容器ID
上述兩個區別
attach 直接進入容器啟動命令的終端,不會啟動新的進程
exec 是在容器中打開新的終端,並且可以啟動新的進程
3.14 從容器內複製檔案到主機上
docker cp 容器ID:容器內路徑 目的主機路徑

命令彙總

項目 | Value | ||
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 | 擷取容器停止時的退出狀態值 |


點點贊

點在看