本文只記錄docker命令在大部分情境下的使用。
總的來說分為以下幾種:
Docker環境信息 — docker [info|version]
容器生命周期管理 — docker [create|exec|run|start|stop|restart|kill|rm|pause|unpause]
容器操作運維 — docker [ps|inspect|top|attach|wait|export|port|rename|stat]
容器rootfs命令 — docker [commit|cp|diff]
鏡像倉庫 — docker [login|pull|push|search]
本地鏡像管理 — docker [build|images|rmi|tag|save|import|load]
容器資源管理 — docker [volume|network]
系統日誌信息 — docker [events|history|logs]
一、常用命令
1、顯示 Docker 版本信息
docker version
2、顯示 Docker 系統信息,包括鏡像和容器數
docker info
3、幫助
docker --help
二、鏡像管理
1、列出鏡像
docker images
2、獲取一個新的鏡像
docker pull nginx:1.18.0
3、查找鏡像
我們可以從 Docker Hub 網站來搜索鏡像,Docker Hub 網址為: https://hub.docker.com/
我們也可以使用 docker search 命令來搜索鏡像。比如我們需要一個 httpd 的鏡像來作為我們的 web 服務。我們可以通過 docker search 命令搜索 httpd 來尋找適合我們的鏡像。
docker search httpd
4、刪除鏡像
docker image rm 鏡像名標籤或者ID
5、鏡像導入與導出
方法一:
docker save image:tag > xxx.tar # save導出.tardocker load
docker export image > xxx.tar # export導出成.tarcat xxx.tar | sudo docker import - image:tag # import導入鏡像
註:兩種方法不可混用
三、容器生命周期
1、運行容器
docker run -it nginx:latest sh# -d: 後臺運行容器 -i:以交互模式運行容器 -t:為容器重新分配一個偽輸入終端 -it常一起使用# -p: 指定埠映射,格式為:主機(宿主)埠:容器埠 --name="nginx-lb":為容器指定一個名稱# -v: 掛載目錄 -e username="ritchie":設置環境變量 -env-file=[]:從指定文件讀入環境變量
2、啟動被停止的容器
docker start 容器名或ID
3、停止運行中的容器
docker stop 容器名或ID
4、重啟容器
docker restart 容器名或ID
5、殺掉運行中的容器
docker kill -s KILL 容器名或者ID
6、刪除容器
docker rm 容器名或ID
7、暫停容器中所有進程
暫停資料庫容器db01提供服務: docker pause db01
8、啟動容器中所有進程
恢復資料庫容器db01提供服務: docker unpause db01
9、運行的容器中執行命令
docker exec -it 容器名或ID sh# -d:分離模式,在後臺運行 -i:即使沒有附加也保持打開 -t:分配一個偽終端
10、刪除所有停止狀態的容器
docker rm `docker ps -a|grep Exited|awk ''`
四、容器操作
1、列出容器
docker ps # 參數 -a:顯示所有的容器 -f:根據條件過濾顯示 -l:顯示最近創建的容器
# 參數 -q:靜默模式,只顯示容器編號 -s:顯示總的文件大小。
2、獲取容器/鏡像的元數據
docker inspect 容器名或ID | grep IPAddress 顯示容器的IP
3、獲取容器的日誌
docker logs # 參數: -f:跟蹤日誌輸出 --since:顯示某個開始時間的所有日誌 -t:顯示時間戳 --tail:僅列出最新N條容器日誌
4、查看容器的埠映射情況
docker port 容器名或ID
五、rootfs命令
1、容器中創建一個新的鏡像
docker commit -a "作者" -m "說明文字" 容器名或ID 鏡像名:標籤
2、容器與主機之間數據拷貝
docker cp /datadir xxx:/datapath # 主機/datadir目錄拷貝到容器xxx中,目錄重命名為/datapath
3、檢查容器中文件結構的更改
docker diff mymysql # 查看容器mymysql的文件結構更改
六、鏡像倉庫
1、登陸到Docker鏡像倉庫
docker login -u 用戶名 -p 密碼 # 登陸到Docker鏡像倉庫,如果未指定鏡像倉庫地址,默認為官方倉庫Docker Hub
2、登出Docker鏡像倉庫
docker logout # 登出Docker鏡像倉庫,如果未指定鏡像倉庫地址,默認為官方倉庫 Docker Hub
3、從鏡像倉庫拉取鏡像
docker pull java:latest # 拉去鏡像庫最新的java鏡像
4、將鏡像上傳到鏡像倉庫
docker push java:latest # 上傳本地鏡像java:latest到鏡像倉庫中
5、從Docker Hub查找鏡像
docker search
參數: --automated:只列出 automated build類型的鏡像
--no-trunc :顯示完整的鏡像描述
-s :列出收藏數不小於指定值的鏡像。