1. 程式人生 > >Docker子命令彙總與解析

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 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 
使用說明:批量打印出容器中程序的執行日誌。