Docker子命令彙總與解析
Docker子命令分類
子命令分類 | 子命令 |
---|---|
Docker環境資訊 | info、version |
容器生命週期管理 | create、exec、kill、pause、restart、rm、run、start、stop、unpause |
映象倉庫命令 | login、logout、pull、push、search |
映象管理 | build、images、import、load、rmi、save、tag、commit |
容器運維操作 | attach、export、inspect、port、ps、rename、stats、top、wait、cp、diff |
系統日誌資訊 | events、history、logs |
docker安裝
sudo apt-get install docker.io
- 1
檢視命令清單
sudo docker
docker help
- 1
- 2
Docker環境資訊
info
docker info:提供配置資訊,對於報bug非常有用。
$ sudo docker info
Containers: 0
Images: 0
Storage Driver: overlay
Backing Filesystem: extfs
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.4.0-2-deepin-amd64
Operating System: Deepin 15 (containerized)
CPUs: 4
Total Memory: 3.792 GiB
Name: pxe1124amd64cn-pc
ID: G3XG:UIIT:IIP5:GMXQ:NYKR:ZHOF:AYEY:LCJR:2DNL:ZS2A:DDLM:ZPRF
WARNING: No memory limit support
WARNING: No swap limit support
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
version
docker version:顯示Docker的版本號,API版本號,Git commit, Docker客戶端和後臺程序的Go版本號。
$ sudo docker version
Client:
Version: 1.8.3
API version: 1.20
Go version: go1.5.1
Git commit: f4bf5c7
Built:
OS/Arch: linux/amd64
Server:
Version: 1.8.3
API version: 1.20
Go version: go1.5.1
Git commit: f4bf5c7
Built:
OS/Arch: linux/amd64
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
容器生命週期管理
create
create : Create a new container
exec
exec: Run a command in a running container
kill
kill: Kill a running container
使用方法:docker kill [OPTIONS] CONTAINER [CONTAINER…]
使用說明:殺掉容器的程序。
pause/unpause
pause: Pause all processes within a container
unpause: Unpause all processes within a container
使用方法:docker pause CONTAINER
使用說明:使用cgroup的freezer順序暫停、恢復容器裡的所有程序。
rm
rm: Remove one or more containers
使用方法:docker rm [OPTIONS] CONTAINER [CONTAINER…]
使用說明:刪除指定的容器。
run
run: Run a command in a new container
使用方法:docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
使用說明:這個命令是核心命令,可以配置的引數多達28個引數。詳細的解釋可以通過docker run –help列出。官方文件中提到的 Issue 2702:”lxc-start: Permission denied - failed to mount” could indicate a permissions problem with AppArmor. 在最新版本的Dcoker中已經解決。
例項1:基於ubuntu映象建立一個容器並執行echo命令。
$ sudo docker run ubuntu echo "hello world"
hello world
- 1
- 2
例項2:基於Ubuntu映象建立一個名為test的容器,併為它分配一個偽終端執行/bin/bash命令,使用者可以在該偽終端與容器進行互動。
$ sudo docker run -i -t --name test ubuntu /bin/bash
root@672f99f6998d:/# df -h
- 1
- 2
- 3
start/stop/restart
start :Start one or more stopped containers
stop :Stop a running container
restart :Restart a running container
使用方法:docker start CONTAINER [CONTAINER…]
使用說明:這組命令可以開啟(兩個:start, restart),停止(一個:stop)一個容器。
映象倉庫命令
login
login: Register or log in to a Docker registry
使用方法:docker login [OPTIONS] [SERVER]
使用說明:登入Hub服務。
logout
logout: Log out from a Docker registry
pull/push
pull : Pull an image or a repository from a registry
push : Push an image or a repository to a registry
使用方法:docker push NAME[:TAG]
使用說明:通過此命令分享Image到Hub服務或者自服務的Registry服務。
例項:
#從官方Hub拉取ubuntu:lastest映象
$sudo docker pull ubuntu
#從官方Hub拉取指明“ubuntu 12.04”tag的映象
$sudo docker pull ubuntu:ubuntu12.04
#從特定倉庫拉取ubuntu:lastest映象
$sudo docker pull SEL/ubuntu
#從其他伺服器拉取映象
$sudo docker pull 10.0.1.103:5000/sshd
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
search
search: Search the Docker Hub for images
使用方法:docker search TERM
使用說明:通過關鍵字搜尋分享的Image。
映象管理
build
build: Build an image from a Dockerfile
使用方法:docker build [OPTIONS] PATH | URL | -
使用說明:這個命令是從原始碼構建新Image的命令。
images
images: List images
使用方法:docker images [OPTIONS] [NAME]
使用說明:Docker Image是多層結構的,預設只顯示最頂層的Image。不顯示的中間層預設是為了增加可複用性、減少磁碟使用空間,加快build構建的速度的功能,一般使用者不需要關心這個細節。
import/save/load
import: Import the contents from a tarball to create a filesystem image
save: Save an image(s) to a tar archive
load: Load an image from a tar archive or STDIN
使用方法:
docker import URL|- [REPOSITORY[:TAG]]
docker save IMAGE
docker load
使用說明:這一組命令是系統運維裡非常關鍵的命令。載入(兩種方法: import, load),匯出(一種方法: save)容器系統檔案。
rmi
rmi: Remove one or more images
使用方法:docker rmi IMAGE [IMAGE…]
使用說明:指定刪除Image檔案。
tag
tag: Tag an image into a repository
使用方法:docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
使用說明:組合使用使用者名稱,Image名字,標籤名來組織管理Image。
commit
commit: Create a new image from a container’s changes
使用方法:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
使用說明:提交儲存時,只能選用正在執行的容器(即可以通過docker ps檢視到的容器)來製作新的映象。這個命令的用處在於把有修改的container提交成新的Image,然後匯出此Imange分發給其他場景中除錯使用。Docker官方的建議是,當你在除錯完Image的問題後,應該寫一個新的Dockerfile檔案來維護此Image。commit命令僅是一個臨時建立Imange的輔助命令。
容器運維操作
attach
attach : Attach to a running container
使用方法:docker attach [OPTIONS] CONTAINER
使用說明:使用這個命令可以掛載正在後臺執行的容器,在開發應用的過程中運用這個命令可以隨時觀察容器內程序的執行狀況。開發者在開發應用的場景中,這個命令是一個非常有用的命令。
export
export : Export a container’s filesystem as a tar archive
使用方法:docker export CONTAINER
使用說明:把容器系統檔案打包並匯出來,方便分發給其他場景使用。
inspect
inspect: Return low-level information on a container or image
使用方法:docker inspect CONTAINER|IMAGE [CONTAINER|IMAGE…]
使用說明:檢視容器執行時詳細資訊的命令。瞭解一個Image或者Container的完整構建資訊就可以通過這個命令實現。
port
port: List port mappings or a specific mapping for the CONTAINER
使用方法:docker port CONTAINER PRIVATE_PORT
使用說明:打印出Host主機埠與容器暴露出的埠的NAT對映關係
ps
ps: List containers
使用方法:docker ps [OPTIONS]
使用說明:docker ps打印出正在執行的容器。docker ps -a打印出所有執行過的容器;docker ps -l檢視最新建立的容器。
rename
rename: Rename a container
stats
stats: Display a live stream of container(s) resource usage statistics
top
top: Display the running processes of a container
使用方法:docker top CONTAINER [ps OPTIONS]
使用說明:顯示容器內執行的程序。
wait
wait : Block until a container stops, then print its exit code
使用方法:docker wait CONTAINER [CONTAINER…]
使用說明:阻塞對指定容器的其他呼叫方法,直到容器停止後退出阻塞。
cp
cp: Copy files/folders from a container to a HOSTDIR or to STDOUT
使用方法:cp CONTAINER:PATH HOSTPATH
使用說明:使用cp可以把容器內的檔案複製到Host主機上。這個命令在開發者開發應用的場景下,會需要把執行程式產生的結果複製出來的需求,在這個情況下就可以使用這個cp命令。
diff
diff: Inspect changes on a container’s filesystem
使用方法:docker diff CONTAINER
使用說明:diff會列出3種容器內檔案狀態變化(A - Add, D - Delete, C - Change )的列表清單。構建Image的過程中需要的除錯指令。
系統日誌資訊
events
events: Get real time events from the server
使用方法:docker events [OPTIONS]
使用說明:列印容器實時的系統事件。
history
history: Show the history of an image
使用方法:docker history [OPTIONS] IMAGE
使用說明:列印指定Image中每一層Image命令列的歷史記錄。
logs
logs: Fetch the logs of a container
使用方法:docker logs CONTAINER
使用說明:批量打印出容器中程序的執行日誌。