docker命令整理
文章目錄
- 語法
- option
- 管理命令
- container
- image
- network
- node
- plugin
- secret
- service
- stack
- swarm
- system
- volume
- 容器生命周期管理
- run
- start/stop/restart
- kill
- rm
- pause/unpause
- create
- exec
- 容器操作
- ps
- inspect
- top
- attach
- events
- logs
- wait
- export
- port
- 容器rootfs命令
- commit
- cp
- diff
- 鏡像倉庫 login
- logout
- pull
- push
- search
- 本地鏡像管理
- images
- rmi
- tag
- build
- history
- save
- load
- import
- info|version info
- version
語法
docker COMMAND [options]option
--config string Location of client config files (default "/root/.docker")-D, --debug Enable debug mode--help Print usage-H, --host list Daemon socket(s) to connect to (default [])-l, --log-level string Set the logging level ("debug", "info", "warn", "error", "fatal") (default "info")--tls Use TLS; implied by --tlsverify--tlscacert string Trust certs signed only by this CA (default "/root/.docker/ca.pem")--tlscert string Path to TLS certificate file (default "/root/.docker/cert.pem")--tlskey string Path to TLS key file (default "/root/.docker/key.pem")--tlsverify Use TLS and verify the remote-v, --version Print version information and quit管理命令
container
管理containers。見后面
image
管理 images。見后面
network
管理networks。
語法:
子命令
connect Connect a container to a networkcreate Create a networkdisconnect Disconnect a container from a networkinspect Display detailed information on one or more networksls List networksprune Remove all unused networksrm Remove one or more networksnode
管理Swarm節點。需要swarm。
plugin
管理plugins。
子命令:
secret
管理Docker secrets。需要swarm。
子命令:
service
管理services。需要swarm。
子命令:
stack
管理Docker stacks。需要swarm。
子命令:
swarm
Manage Swarm。
system
管理Docker。
子命令:
volume
管理volumes。
語法:
子命令
create Create a volumeinspect Display detailed information on one or more volumesls List volumesprune Remove all unused volumesrm Remove one or more volumes容器生命周期管理
run
功能
創建一個新的容器并運行一個命令
語法
參數
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: 綁定一個卷
示例
start/stop/restart
功能
docker start :啟動一個或多個已經被停止的容器
docker stop :停止一個運行中的容器
docker restart :重啟容器
語法
參數
Options:
-a, --attach Attach STDOUT/STDERR and forward signals
–detach-keys string Override the key sequence for detaching a container
–help Print usage
-i, --interactive Attach container’s STDIN
kill
功能
殺掉一個運行中的容器。
語法
參數
OPTIONS說明:
--s:向容器發送一個信號
示例
rm
功能
刪除一個或多個容器。
語法
參數
OPTIONS說明:
--f:通過 SIGKILL 信號強制刪除一個運行中的容器。
--l:移除容器間的網絡連接,而非容器本身。
--v:刪除與容器關聯的卷。
stop,rm,kill區別
- docker stop
將容器保留在docker ps -a列表中(如果您想將其狀態保存在新image中,則可以提交該容器)。它先發送SIGTERM,然后在寬限期之后發送SIGKILL。優雅退出。 - docker rm
將從docker ps -a列表中刪除容器,丟失其“狀態”(寫在image文件系統頂部的分層文件系統)。它無法刪除正在運行的容器(除非使用調用-f,在這種情況下,它將直接發送SIGKILL)。 - docker kill
發送SIGKILL信號,應用程序直接退出。
在生命周期方面,應該首先停止容器,然后再將其刪除。
pause/unpause
功能
docker pause :暫停容器中所有的進程。
docker unpause :恢復容器中所有的進程。
語法
參數
create
功能
創建一個新的容器但不啟動它。create的容器,可以通過start命令啟動。
語法
參數
同docker run
exec
功能
在運行的容器中執行命令
語法
參數
OPTIONS說明:
--d:分離模式: 在后臺運行
--i:即使沒有附加也保持STDIN 打開
--t:分配一個偽終端 。(在crontab等非前端任務中,如果加此參數,會提示:the input device is not a TTY)
示例
容器操作
ps
功能
列出容器
語法
參數
OPTIONS說明:
--a:顯示所有的容器,包括未運行的。
--f:根據條件過濾顯示的內容。
-–format:指定返回值的模板文件。
--l:顯示最近創建的容器。
--n:列出最近創建的n個容器。
-–no-trunc:不截斷輸出。
--q:靜默模式,只顯示容器編號。
--s:顯示總的文件大小。
inspect
功能
獲取容器/鏡像的元數據。
語法
參數
OPTIONS說明:
--f:指定返回值的模板文件。
--s:顯示總的文件大小。
-–type:為指定類型返回JSON。
top
功能
查看容器中運行的進程信息,支持 ps 命令參數。
語法
參數
attach
功能
連接到正在運行中的容器。
要attach上去的容器必須正在運行,可以同時連接上同一個container來共享屏幕(與screen命令的attach類似)。
官方文檔中說attach后可以通過CTRL-C來detach,但實際上經過測試,如果container當前在運行bash,CTRL-C自然是當前行的輸入,沒有退出;如果container當前正在前臺運行進程,如輸出nginx的access.log日志,CTRL-C不僅會導致退出容器,而且還stop了。這不是我們想要的,detach的意思按理應該是脫離容器終端,但容器依然運行。好在attach是可以帶上**–sig-proxy=false**來確保CTRL-D或CTRL-C不會關閉容器。
語法
參數
Options:
–detach-keys string Override the key sequence for detaching a container
–help Print usage
–no-stdin Do not attach STDIN
–sig-proxy Proxy all received signals to the process (default true)
events
功能
從服務器獲取實時事件
語法
參數
OPTIONS說明:
-**-f :根據條件過濾事件;
-–since :從指定的時間戳后顯示所有事件;
-–until :**流水時間顯示到指定的時間為止;
logs
功能
獲取容器的日志
語法
參數
OPTIONS說明:
--f: 跟蹤日志輸出。類似linux tail -f 命令,滾動更新。
-–since:顯示某個開始時間的所有日志
--t: 顯示時間戳
-–tail:僅列出最新N條容器日志
wait
功能
阻塞運行直到容器停止,然后打印出它的退出代碼。
語法
參數
export
功能
將container作為一個tar歸檔文件導出到STDOUT。
語法
參數
OPTIONS說明:
--o:將輸入內容寫到文件。
示例:
port
功能
列出指定的容器的端口映射,或者查找將PRIVATE_PORT NAT到面向公眾的端口
語法
參數
容器rootfs命令
commit
功能
從容器創建一個新的鏡像。
語法
參數
OPTIONS說明:
--a:提交的鏡像作者;
--c:使用Dockerfile指令來創建鏡像;
--m:提交時的說明文字;
--p:在commit時,將容器暫停。
cp
功能
用于容器與主機之間的數據拷貝
語法
參數
OPTIONS說明:
--L:保持源目標中的鏈接
容器是鏡像的運行實例。不同的是,鏡像是靜態的只讀文件,而容器帶有運行時需要的可寫文件層;同時,容器中的應用進程處于運行狀態。所以是可以copy的。
示例
diff
功能
檢查容器里文件結構的更改。更改標識由C,D,A標識。
語法
參數
鏡像倉庫 login
功能
登陸到一個Docker鏡像倉庫,如果未指定鏡像倉庫地址,默認為官方倉庫 Docker Hub
語法
參數
OPTIONS說明:
--u:登陸的用戶名
--p:登陸的密碼
logout
功能
登出一個Docker鏡像倉庫,如果未指定鏡像倉庫地址,默認為官方倉庫 Docker Hub
語法
參數
OPTIONS說明:
--u:登陸的用戶名
--p:登陸的密碼
pull
功能
從鏡像倉庫中拉取或者更新指定鏡像
語法
參數
OPTIONS說明:
--a:拉取所有 tagged 鏡像
-–disable-content-trust:忽略鏡像的校驗,默認開啟
如果未指定tag,則為最新鏡像。
push
功能
將本地的鏡像上傳到鏡像倉庫,要先登陸到鏡像倉庫
語法
參數
OPTIONS說明:
-–disable-content-trust:忽略鏡像的校驗,默認開啟
search
功能
從Docker Hub查找鏡像
語法
參數
OPTIONS說明:
-–automated:只列出 automated build類型的鏡像;
-–no-trunc:顯示完整的鏡像描述;
--s:列出收藏數不小于指定值的鏡像。
本地鏡像管理
images
功能
列出本地鏡像。
語法
參數
OPTIONS說明:
--a:列出本地所有的鏡像(含中間映像層,默認情況下,過濾掉中間映像層);
-–digests:顯示鏡像的摘要信息;
--f:顯示滿足條件的鏡像;
-–format:指定返回值的模板文件;
-–no-trunc:顯示完整的鏡像信息;
--q:只顯示鏡像ID。
rmi
功能
刪除本地一個或多少鏡像。
語法
參數
OPTIONS說明:
--f:強制刪除;不論鏡像是否被容器使用。
-–no-prune:不移除該鏡像的過程鏡像,默認移除;
tag
功能
標記本地鏡像,將其歸入某一倉庫。
語法
參數
build
功能
使用 Dockerfile 創建鏡像。
語法
參數
OPTIONS說明:
-–build-arg=[]:設置鏡像創建時的變量;
-–cpu-shares:設置 cpu 使用權重;
-–cpu-period:限制 CPU CFS周期;
-–cpu-quota:限制 CPU CFS配額;
-–cpuset-cpus:指定使用的CPU id;
-–cpuset-mems:指定使用的內存 id;
-–disable-content-trust:忽略校驗,默認開啟;
--f:指定要使用的Dockerfile路徑;
-–force-rm:設置鏡像過程中刪除中間容器;
-–isolation:使用容器隔離技術;
-–label=[]:設置鏡像使用的元數據;
--m:設置內存最大值;
-–memory-swap:設置Swap的最大值為內存+swap,"-1"表示不限swap;
-–no-cache:創建鏡像的過程不使用緩存;
-–pull:嘗試去更新鏡像的新版本;
-–quiet, -q:安靜模式,成功后只輸出鏡像 ID;
-–rm:設置鏡像成功后刪除中間容器;
-–shm-size:設置/dev/shm的大小,默認值是64M;
-–ulimit:Ulimit配置。
-–tag, -t: 鏡像的名字及標簽,通常 name:tag 或者 name 格式;可以在一次構建中為一個鏡像設置多個標簽。
-–network: 默認 default。在構建期間設置RUN指令的網絡模式
示例
history
功能
查看指定鏡像的創建歷史。
語法
參數
OPTIONS說明:
--H:以可讀的格式打印鏡像大小和日期,默認為true;
-–no-trunc:顯示完整的提交記錄;
--q:僅列出提交記錄ID。
save
功能
將指定鏡像保存成 tar 歸檔文件。
語法
參數
OPTIONS 說明:
--o:輸出到的文件。
load
功能
導入使用save 命令導出的鏡像。
語法
參數
OPTIONS 說明:
-–input , -i: 指定導入的文件,代替 STDIN。
-–quiet , -q: 精簡輸出信息。
import
功能
從歸檔文件中創建鏡像。
語法
參數
OPTIONS說明:
--c:應用docker 指令創建鏡像;
--m:提交時的說明文字;
注意:
實際上,既可以使用docker load命令來導入鏡像庫存儲文件到本地鏡像庫,也可以使用docker import命令來導入一個容器快照到本地鏡像庫。
兩者的區別在于容器快照將會丟棄所有的歷史記錄和元數據信息,而鏡像存儲文件將保存完整記錄,體積也會更大。此外從容器快照文件導入時,也可以重新指定標簽等元數據。
info|version info
功能
顯示 Docker 系統信息,包括鏡像和容器數。。
語法
參數
Options:
-f, --format string Format the output using the given Go template
–help Print usage
version
功能
顯示 Docker 版本信息。
語法
參數
OPTIONS說明:
--f :指定返回值的模板文件。
總結
以上是生活随笔為你收集整理的docker命令整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 模型评估之混淆矩阵
- 下一篇: Jenkins Pipeline 语法