本文包括容器生命周期管理命令、容器操作命令、容器rootfs命令、鏡像倉庫命令、本地鏡像管理命令和基礎(chǔ)版本信息命令。
容器生命周期管理命令
run
創(chuàng)建一個新的容器。
# 使用docker鏡像nginx:latest以后臺模式啟動一個容器,# 并將容器命名為mynginx。 docker run --name mynginx -d nginx:latest # 使用鏡像 nginx:latest,以后臺模式啟動一個容器,# 將容器的 80 端口映射到主機(jī)的 80 端口,# 主機(jī)的目錄 /data 映射到容器的 /data。 docker run -p 80:80 -v /data:/data -d nginx:latest # 使用鏡像nginx:latest以交互模式啟動一個容器,# 在容器內(nèi)執(zhí)行/bin/bash命令。 docker run -it nginx:latest /bin/bash
登錄后復(fù)制
start/stop/restart
-
docker start : 啟動一個或多個已經(jīng)被停止的容器。 -
docker stop : 停止一個運(yùn)行中的容器。 -
docker restart : 重啟容器。 # 啟動已被停止的容器mynginx docker start mynginx # 停止運(yùn)行中的容器mynginx docker stop mynginx # 重啟容器mynginx docker restart mynginx
登錄后復(fù)制
kill
殺掉一個運(yùn)行中的容器。可選參數(shù):
-
-s : 發(fā)送什么信號到容器,默認(rèn) KILL # 根據(jù)容器名字殺掉容器 docker kill tomcat7 # 根據(jù)容器ID殺掉容器 docker kill 65d4a94f7a39
登錄后復(fù)制
rm
刪除一個或多個容器。
# 強(qiáng)制刪除容器 db01、db02: docker rm -f db01 db02 # 刪除容器 nginx01, 并刪除容器掛載的數(shù)據(jù)卷: docker rm -v nginx01 # 刪除所有已經(jīng)停止的容器: docker rm $(docker ps -a -q)
登錄后復(fù)制
create
創(chuàng)建一個新的容器但不啟動它。
# 使用docker鏡像nginx:latest創(chuàng)建一個容器,并將容器命名為mynginx docker create --name mynginx nginx:latest
登錄后復(fù)制
exec
在運(yùn)行的容器中執(zhí)行命令??蛇x參數(shù):
-
-d : 分離模式: 在后臺運(yùn)行 -
-i : 即使沒有附加也保持STDIN 打開 -
-t : 分配一個偽終端 # 在容器 mynginx 中以交互模式執(zhí)行容器內(nèi) /root/nginx.sh 腳本 docker exec -it mynginx /bin/sh /root/nginx.sh # 在容器 mynginx 中開啟一個交互模式的終端 docker exec -i -t mynginx /bin/bash # 也可以通過 docker ps -a 命令查看已經(jīng)在運(yùn)行的容器,然后使用容器 ID 進(jìn)入容器。 docker ps -a docker exec -it 9df70f9a0714 /bin/bash
登錄后復(fù)制
pause/unpause
-
docker pause :暫停容器中所有的進(jìn)程。 -
docker unpause :恢復(fù)容器中所有的進(jìn)程。 # 暫停數(shù)據(jù)庫容器db01提供服務(wù)。 docker pause db01 # 恢復(fù)數(shù)據(jù)庫容器 db01 提供服務(wù) docker unpause db0
登錄后復(fù)制
容器操作命令
ps
列出容器。可選參數(shù):
-
-a : 顯示所有的容器,包括未運(yùn)行的。 -
-f : 根據(jù)條件過濾顯示的內(nèi)容。 -
–format : 指定返回值的模板文件。 -
-l : 顯示最近創(chuàng)建的容器。 -
-n : 列出最近創(chuàng)建的n個容器。 -
–no-trunc : 不截斷輸出。 -
-q : 靜默模式,只顯示容器編號。 -
-s : 顯示總的文件大小。 # 列出所有在運(yùn)行的容器信息。 docker ps # 列出最近創(chuàng)建的5個容器信息。 docker ps -n 5 # 列出所有創(chuàng)建的容器ID。 docker ps -a -q
登錄后復(fù)制
補(bǔ)充說明:
容器的7種狀態(tài):created(已創(chuàng)建)、restarting(重啟中)、running(運(yùn)行中)、removing(遷移中)、paused(暫停)、exited(停止)、dead(死亡)。
inspect
獲取容器/鏡像的元數(shù)據(jù)??蛇x參數(shù):
-
-f : 指定返回值的模板文件。 -
-s : 顯示總的文件大小。 -
–type : 為指定類型返回JSON。 # 獲取鏡像mysql:5.7的元信息。 docker inspect mysql:5.7 # 獲取正在運(yùn)行的容器mymysql的 IP。 docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mymysql
登錄后復(fù)制
top
查看容器中運(yùn)行的進(jìn)程信息,支持 ps 命令參數(shù)。
# 查看容器mymysql的進(jìn)程信息。 docker top mymysql # 查看所有運(yùn)行容器的進(jìn)程信息。 for i in `docker ps |grep Up|awk '{print $1}'`;do echo \ &&docker top $i; done
登錄后復(fù)制
events
獲取實時事件。參數(shù)說明:
-
-f : 根據(jù)條件過濾事件; -
–since : 從指定的時間戳后顯示所有事件; -
–until : 流水時間顯示到指定的時間為止; # 顯示docker 2016年7月1日后的所有事件。 docker events --since="1467302400" # 顯示docker 鏡像為mysql:5.6 2016年7月1日后的相關(guān)事件。 docker events -f "image"="mysql:5.6" --since="1467302400"
登錄后復(fù)制
說明:如果指定的時間是到秒級的,需要將時間轉(zhuǎn)成時間戳。如果時間為日期的話,可以直接使用,如–since=“2016-07-01”。
logs
獲取容器的日志。參數(shù)說明:
-
-f : 跟蹤日志輸出 -
–since : 顯示某個開始時間的所有日志 -
-t : 顯示時間戳 -
–tail : 僅列出最新N條容器日志 # 跟蹤查看容器mynginx的日志輸出。 docker logs -f mynginx # 查看容器mynginx從2016年7月1日后的最新10條日志。 docker logs --since="2016-07-01" --tail=10 mynginx
登錄后復(fù)制
export
將文件系統(tǒng)作為一個tar歸檔文件導(dǎo)出到STDOUT。參數(shù)說明:
牛逼?。〗铀交畋貍涞?N 個開源項目!趕快收藏
登錄后復(fù)制
-
-o : 將輸入內(nèi)容寫到文件。 # 將id為a404c6c174a2的容器按日期保存為tar文件。 docker export -o mysql-`date +%Y%m%d`.tar a404c6c174a2 ls mysql-`date +%Y%m%d`.tar
登錄后復(fù)制
port
列出指定的容器的端口映射。
# 查看容器mynginx的端口映射情況。 docker port mymysql
登錄后復(fù)制
容器rootfs命令
commit
從容器創(chuàng)建一個新的鏡像。參數(shù)說明:
-
-a : 提交的鏡像作者; -
-c : 使用Dockerfile指令來創(chuàng)建鏡像; -
-m : 提交時的說明文字; -
-p : 在commit時,將容器暫停。 # 將容器a404c6c174a2 保存為新的鏡像,# 并添加提交人信息和說明信息。 docker commit -a "guodong" -m "my db" a404c6c174a2 mymysql:v1
登錄后復(fù)制
cp
用于容器與主機(jī)之間的數(shù)據(jù)拷貝。參數(shù)說明:
-
-L : 保持源目標(biāo)中的鏈接 # 將主機(jī)/www/runoob目錄拷貝到容器96f7f14e99ab的/www目錄下。 docker cp /www/runoob 96f7f14e99ab:/www/ # 將主機(jī)/www/runoob目錄拷貝到容器96f7f14e99ab中,目錄重命名為www。 docker cp /www/runoob 96f7f14e99ab:/www # 將容器96f7f14e99ab的/www目錄拷貝到主機(jī)的/tmp目錄中。 docker cp 96f7f14e99ab:/www /tmp/
登錄后復(fù)制
diff
檢查容器里文件結(jié)構(gòu)的更改。
# 查看容器mymysql的文件結(jié)構(gòu)更改。 docker diff mymysql
登錄后復(fù)制
鏡像倉庫命令
login/logout
docker login : 登陸到一個Docker鏡像倉庫,如果未指定鏡像倉庫地址,默認(rèn)為官方倉庫 Docker Hubdocker logout :登出一個Docker鏡像倉庫,如果未指定鏡像倉庫地址,默認(rèn)為官方倉庫 Docker Hub參數(shù)說明:
-
-u : 登陸的用戶名 -
-p : 登陸的密碼 # 登陸到Docker Hub docker login -u 用戶名 -p 密碼 # 登出Docker Hub docker logout
登錄后復(fù)制
pull
從鏡像倉庫中拉取或者更新指定鏡像。參數(shù)說明:
-
-a : 拉取所有 tagged 鏡像 -
–disable-content-trust : 忽略鏡像的校驗,默認(rèn)開啟 # 從Docker Hub下載java最新版鏡像。 docker pull java # 從Docker Hub下載REPOSITORY為java的所有鏡像。 docker pull -a java
登錄后復(fù)制
push
將本地的鏡像上傳到鏡像倉庫,要先登陸到鏡像倉庫。參數(shù)說明:
-
–disable-content-trust : 忽略鏡像的校驗,默認(rèn)開啟 # 上傳本地鏡像myapache:v1到鏡像倉庫中。 docker push myapache:v1
登錄后復(fù)制
search
從Docker Hub查找鏡像。參數(shù)說明:
-
–automated : 只列出 automated build類型的鏡像; -
–no-trunc : 顯示完整的鏡像描述; -
-f \<過濾條件>: 列出指定條件的鏡像。 # 從 Docker Hub 查找所有鏡像名包含 java,并且收藏數(shù)大于 10 的鏡像 docker search -f stars=10 java NAME DESCRIPTION STARS OFFICIAL AUTOMATED java Java is a concurrent, class-based... 1037 [OK] anapsix/alpine-java Oracle Java 8 (and 7) with GLIBC ... 115 [OK] develar/java 46 [OK]
登錄后復(fù)制
每列參數(shù)說明:
-
NAME: 鏡像倉庫源的名稱 -
DESCRIPTION: 鏡像的描述 -
OFFICIAL: 是否 docker 官方發(fā)布 -
stars: 類似 Github 里面的 star,表示點(diǎn)贊、喜歡的意思 -
另外搜索公眾號GitHub猿后臺回復(fù)“賺錢”,獲取一份驚喜禮包。 -
AUTOMATED: 自動構(gòu)建 本地鏡像管理命令
images
列出本地鏡像。參數(shù)說明:
-
-a : 列出本地所有的鏡像(含中間映像層,默認(rèn)情況下,過濾掉中間映像層); -
–digests : 顯示鏡像的摘要信息; -
-f : 顯示滿足條件的鏡像; -
–format : 指定返回值的模板文件; -
–no-trunc : 顯示完整的鏡像信息; -
-q : 只顯示鏡像ID。 # 查看本地鏡像列表。 docker images # 列出本地鏡像中REPOSITORY為ubuntu的鏡像列表。 docker images ubuntu
登錄后復(fù)制
rmi
刪除本地一個或多個鏡像。參數(shù)說明:
-
-f : 強(qiáng)制刪除; -
–no-prune : 不移除該鏡像的過程鏡像,默認(rèn)移除; -
另外,搜索公眾號Linux就該這樣學(xué)后臺回復(fù)“Linux”,獲取一份驚喜禮包。 # 強(qiáng)制刪除本地鏡像 guodong/ubuntu:v4。 docker rmi -f guodong/ubuntu:v4
登錄后復(fù)制
tag
標(biāo)記本地鏡像,將其歸入某一倉庫。
# 將鏡像ubuntu:15.10標(biāo)記為 runoob/ubuntu:v3 鏡像。 docker tag ubuntu:15.10 runoob/ubuntu:v3
登錄后復(fù)制
build
用于使用 Dockerfile 創(chuàng)建鏡像。參數(shù)說明:
-
–build-arg=[] : 設(shè)置鏡像創(chuàng)建時的變量; -
–cpu-shares : 設(shè)置 cpu 使用權(quán)重; -
–cpu-period : 限制 CPU CFS周期; -
–cpu-quota : 限制 CPU CFS配額; -
–cpuset-cpus : 指定使用的CPU id; -
–cpuset-mems : 指定使用的內(nèi)存 id; -
–disable-content-trust : 忽略校驗,默認(rèn)開啟; -
-f : 指定要使用的Dockerfile路徑; -
–force-rm : 設(shè)置鏡像過程中刪除中間容器; -
–isolation : 使用容器隔離技術(shù); -
–label=[] : 設(shè)置鏡像使用的元數(shù)據(jù); -
-m : 設(shè)置內(nèi)存最大值; -
–memory-swap : 設(shè)置Swap的最大值為內(nèi)存+swap,"-1"表示不限swap; -
–no-cache : 創(chuàng)建鏡像的過程不使用緩存; -
–pull : 嘗試去更新鏡像的新版本; -
–quiet, -q : 安靜模式,成功后只輸出鏡像 ID; -
–rm : 設(shè)置鏡像成功后刪除中間容器; -
–shm-size : 設(shè)置/dev/shm的大小,默認(rèn)值是64M; -
–ulimit : Ulimit配置。 -
–squash : 將 Dockerfile 中所有的操作壓縮為一層。 -
–tag, -t: 鏡像的名字及標(biāo)簽,通常 name:tag 或者 name 格式;可以在一次構(gòu)建中為一個鏡像設(shè)置多個標(biāo)簽。 -
–network: 默認(rèn) default。在構(gòu)建期間設(shè)置RUN指令的網(wǎng)絡(luò)模式 # 使用當(dāng)前目錄的 Dockerfile 創(chuàng)建鏡像,標(biāo)簽為 runoob/ubuntu:v1 docker build -t runoob/ubuntu:v1 . # 使用URL github.com/creack/docker-firefox 的 Dockerfile 創(chuàng)建鏡像 docker build github.com/creack/docker-firefox # 通過 -f Dockerfile文件的位置 創(chuàng)建鏡像 docker build -f /path/to/a/Dockerfile .
登錄后復(fù)制
history
查看指定鏡像的創(chuàng)建歷史。參數(shù)說明:
-
-H : 以可讀的格式打印鏡像大小和日期,默認(rèn)為true; -
–no-trunc : 顯示完整的提交記錄; -
-q : 僅列出提交記錄ID。 # 查看本地鏡像 guodong/ubuntu:v3 的創(chuàng)建歷史。 docker history guodong/ubuntu:v3
登錄后復(fù)制
save
將指定鏡像保存成 tar 歸檔文件。參數(shù)說明:
-
-o : 輸出到的文件。 # 將鏡像 runoob/ubuntu:v3 生成 my_ubuntu_v3.tar 文檔 docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
登錄后復(fù)制
load
導(dǎo)入使用
docker save
命令導(dǎo)出的鏡像。參數(shù)說明:-
–input , -i : 指定導(dǎo)入的文件,代替 STDIN。 -
–quiet , -q : 精簡輸出信息。 # 導(dǎo)入鏡像 docker load --input fedora.tar
登錄后復(fù)制
import
從歸檔文件中創(chuàng)建鏡像。參數(shù)說明:
-
-c : 應(yīng)用docker 指令創(chuàng)建鏡像; -
-m : 提交時的說明文字; # 從鏡像歸檔文件my_ubuntu_v3.tar創(chuàng)建鏡像,命名為runoob/ubuntu:v4 docker import my_ubuntu_v3.tar runoob/ubuntu:v4
登錄后復(fù)制
基礎(chǔ)版本信息命令
info
顯示 Docker 系統(tǒng)信息,包括鏡像和容器數(shù)。
# 查看docker系統(tǒng)信息。 docker info
登錄后復(fù)制
version
顯示 Docker 版本信息。
docker version
登錄后復(fù)制
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
以上就是精華!Docker 常用命令大全的詳細(xì)內(nèi)容,更多請關(guān)注www.92cms.cn其它相關(guān)文章!