容器生命周期管理
- run 創建一個新的容器並運行一個命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
- start/stop/restart 啟動/停止/重啟容器
docker start [OPTIONS] CONTAINER [CONTAINER...]
- kill 殺掉一個運行中的容器
docker kill [OPTIONS] CONTAINER [CONTAINER...]
- rm 刪除一個或多個容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
- pause/unpause 暫停/恢復容器中所有的進程
docker pause [OPTIONS] CONTAINER [CONTAINER...]
- create 創建一個新的容器但不啟動它
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
- exec 在運行的容器中執行命令啟動新進程(一般用以監控或查詢)
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
容器操作
- ps 列出容器
docker ps [OPTIONS]
- inspect 獲取容器/鏡像的元數據
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
- top 查看容器中運行的進程信息,支持 ps 命令參數
docker top [OPTIONS] CONTAINER [ps OPTIONS]
- attach 連接到正在運行中的容器
docker attach [OPTIONS] CONTAINER
- events 從服務器獲取實時事件
docker events [OPTIONS]
- logs 獲取容器的日志
docker logs [OPTIONS] CONTAINER
(-t日志添加時間戳 -f跟蹤日志變動 --tail n/all從倒數n條處打印)
- wait 阻塞運行直到容器停止,然后打印出它的退出代碼
docker wait [OPTIONS] CONTAINER [CONTAINER...]
- export 將文件系統作為一個tar歸檔文件導出到STDOUT
docker export [OPTIONS] CONTAINER
- port 列出指定的容器的端口映射,或者查找將PRIVATE_PORT NAT到面向公眾的端口
docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
容器rootfs命令
- commit 從容器創建一個新的鏡像【像代碼版本控制一樣控制業務系統及其環境的版本】
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
(-a 作者 -m 注釋 )
- cp 用於容器與主機之間的數據拷貝
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
- diff 檢查容器里文件結構的更改
docker diff [OPTIONS] CONTAINER
鏡像倉庫
- login/logout 登陸/注銷到一個Docker鏡像倉庫
docker login -u 用戶名 -p 密碼 [SERVER]
docker logout
- pull 從鏡像倉庫中拉取或者更新指定鏡像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
- push 將本地的鏡像上傳到鏡像倉庫,要先登陸到鏡像倉庫
docker push [OPTIONS] NAME[:TAG]
- search 從Docker Hub查找鏡像
docker search [OPTIONS] TERM
本地鏡像管理
- images 列出本地鏡像
docker images [OPTIONS] [REPOSITORY[:TAG]]
- rmi 刪除本地一個或多個鏡像
docker rmi [OPTIONS] IMAGE [IMAGE...]
- tag 標記本地鏡像,將其歸入某一倉庫
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
- build 使用Dockerfile構建鏡像
docker build [OPTIONS] PATH | URL |
(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 :嘗試去更新鏡像的新版本;
-q :安靜模式,成功后只輸出鏡像ID;
--rm :設置鏡像成功后刪除中間容器;
--shm-size :設置/dev/shm的大小,默認值是64M;
--ulimit :Ulimit配置
)
- history 查看指定鏡像的構建過程
docker history [OPTIONS] IMAGE
- save/load 將指定鏡像保存成 tar 文件/將tar文件恢復成鏡像
docker save [OPTIONS] IMAGE [IMAGE...] #鏡像備份
docker load -i TAR.tar #鏡像恢復
(-o :輸出到的文件)
- import/export 從歸檔文件中構建鏡像/將鏡像導出【export導出會丟失構建歷史無法回滾,save會保留構建歷史】
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
docker export -o PATH_TO_EXPORT_FILE CONTAINER
info|version
- info 顯示 Docker 系統信息,包括鏡像和容器數
docker info [OPTIONS]
- version 顯示 Docker 版本信息
docker version [OPTIONS]
[注]docker命令是可以嵌套的,如 docker rmi $(docker images -q ubuntu)是刪除ubuntu倉庫中的所有鏡像