Docker 子命令:
attach commit diff export history import insert kill login port
pull restart rmi save start tag version build cp events
help images info inspect load logs ps push rm run
search stop top wait
docker help: 幫助
命令格式:
docker help [COMMAND]
例子:
docker help run
docker version: 顯示Docker版本
docker info: 顯示Docker信息
docker attach: 掛載正在后臺運行的容器到前臺
命令格式:
dockerattach [OPTIONS] CONTAINER
命令參數:
--no-stdin=false 不掛載輸入流
--sig-proxy=true 代理接收系統信息,(除SIGCHLDSIGKILLSIGSTOP之外)
例子:
ID=$(sudo docker run -d -i -tubuntu /bin/bash)
sudo docker attach $ID
docker run: 在1個新的容器中履行命令 (CTRL-p CTRL-q 退出至后臺運行)
命令格式: 請參考 http://blog.csdn.net/hyzhou33550336/article/details/41703629
dockerrun [OPTIONS] IMAGE [COMMAND] [ARG...]
例子:
sudodocker run -i -t ubuntu:14.04 /bin/bash 啟動1個新的Ubuntu容器
sudodocker run --rm -i -t ubuntu:14.04/bin/bash 啟動1個新的Ubuntu容器,關閉時會自動刪除,合適測試玩
sudo docker run -i -t --name "private_container" ubuntu:14.04 /bin/bash
docker ps: 列出當前容器
命令格式:
dockerps [OPTIONS]
命令參數:
-a, --all=false 顯示所有容器,包括當前沒有運行的容器
--before="" 顯示在某1個指定ID或Name的容器之前的容器
--since="" 顯示在某1個指定ID或Name的容器以后的容器
-f, --filter=[] 按條件過濾容器, 可選的過濾選項:
exited=<int> 容器的返回值
-l, --latest=false 顯示最新的1個容器
-n num 顯示最新的N個容器
--no-trunc=false 不要截斷輸出
-q, --quiet=false 僅顯示容器ID
-s, --size=false 顯示容器大小
例子:
dockerps 當前正在運行的容器
dockerps -a 當前正在運行或是停止的容器
dockerps -a -q --no-trunc 取得當前所有容器的ID,不截斷輸出
docker rm $(echo $(docker ps -q --no-trunc) $(dockerps -a -q --no-trunc) | sed 's|s| |g' |sort | uniq -u)
刪除當前不在運行狀態的容器ID,也能夠把前面改成dockerrm
docker images: 列出當前鏡像
命令格式:
dockerimages [OPTIONS] [NAME]
命令參數:
-a, --all=false 顯示所有鏡像,包括中間生成的臨時鏡像
-f, --filter=[] 通過標簽過濾 (i.e. 'dangling=true')
--no-trunc=false 不要截斷輸出
-q, --quiet=false 僅顯示容器ID
例子:
dockerimages 顯示當前倉庫中的鏡像
dockerimages -a 顯示當前倉庫中的鏡像與臨時鏡像
dockerimages -a -q --no-trunc 顯示當前倉庫中的鏡像與臨時鏡像的ID,不截斷輸出
docker logs: 顯示容器的日志
命令格式:
docker logs CONTAINER
命令參數:
-f, --follow=false 等待容器后續的輸出(類似 tail -f)
-t, --timestamps=false 顯示時間戳
--tail="all"
例子:
sudo docker logs 7bb0e258aefe
sudo docker logs --timestamps=true 7bb0e258aefe
sudo docker logs --timestamps=true 7bb0e258aefe > 7bb0e258aefe.log
終端A:
sudo docker logs --follow 7bb0e258aefe
終端B:
sudo docker attach 708cc7ec0f23 (隨意履行1些命令可以看到終端A會有實時輸出)
docker inspect: 顯示鏡像或容器的詳細信息
命令格式:
dockerinspect CONTAINER|IMAGE [CONTAINER|IMAGE...]
命令參數:
-f, --format="" 選擇輸出內容,--format="{{.NetworkSettings.IPAddress}}"
例子:
sudo docker inspect 7bb0e258aefe
sudo docker inspect--format='{{.NetworkSettings.IPAddress}}' 7bb0e258aefe
docker stop: 停止運行中的容器 (CTRL-d 強迫退出, Exited (0))
命令格式:
dockerstop [OPTIONS] CONTAINER [CONTAINER...]
命令參數:
-t, --time=10 殺掉容器進程之前,等待的時間
例子:
sudo docker stop 7bb0e258aefe
docker kill: 殺掉1個運行中的容器 (Exited (⑴))
命令格式:
docker kill [OPTIONS] CONTAINER [CONTAINER...]
命令參數:
-s, --signal="KILL" 選擇向容器發出的Signal
例子:
sudo docker kill 7bb0e258aefe
docker start: 重啟停止的容器
命令格式:
dockerstart CONTAINER [CONTAINER...]
命令參數:
-a,--attach=false Attach container'sSTDOUT and STDERR and forward all signals to the process
-i,--interactive=false Attach container'sSTDIN
例子:
sudo docker start 7bb0e258aefe
docker restart: 重啟運行中的容器
命令格式:
dockerrestart [OPTIONS] CONTAINER [CONTAINER...]
命令參數:
-t, --time=10 殺掉容器進程之前,等待的時間
例子:
sudo docker restart 7bb0e258aefe
docker wait: 等待容器退出
命令格式:
dockerwait CONTAINER [CONTAINER...]
例子:
A終端:
sudodocker wait 708cc7ec0f23 A終端阻塞,等待容器關閉
B終端:
sudodocker restart 708cc7ec0f23 從B終端關閉容器,A終端顯示0,結束阻塞,返回
docker cp: 拷貝容器中的文件
命令格式:
dockercp CONTAINER:PATH HOSTPATH
例子:
dockercp c3f279d17e0a:/home/hyzhou/answer.txt . 將鏡像中的/home/hyzhou/answer.txt文件拷貝到當前目錄下
docker rm: 刪除容器
命令格式:
dockerrm [OPTIONS] CONTAINER [CONTAINER...]
命令參數:
-f, --force=false 強迫刪除容器(使用SIGKILL)
-l, --link=false Removethe specified link and not the underlying container
-v, --volumes=false Removethe volumes associated with the container
例子:
dockerrm my_ubuntu 刪除容器
dockerrm 708cc7ec0f23 刪除容器
dockerrm $(docker ps -a -q) 刪除所有容器
docker top: 查看容器輸出
命令格式:
dockertop CONTAINER [ps OPTIONS]
例子:
[ps OPTIONS]的意思是, 你可以在這個命令后面加上使用ps命令時的各種參數
sudo docker top 708cc7ec0f23
sudo docker top 708cc7ec0f23 aux
docker events: 實時監聽容器的事件
命令格式:
dockerevents [OPTIONS]
命令參數:
--since="" 顯示某1個時間戳以后的events
--until="" 實時監聽到某個時間戳為止
例子:
A終端:
sudodocker events 終端A等待Docker系統信息
sudo docker events --since 1378216169
sudo docker events --since '2013-09-03'
sudo docker events--since '2013-09-03 15:49:29'
sudo docker events --since'2013-09-03 15:49:29 +0200 CEST'
sudodocker events > docker.log & 后臺記錄Docker的容器事件
B終端:
sudodocker restart 708cc7ec0f23 從B終端關閉容器
A終端顯示:
2014-09-06T23:08:21+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2: (fromubuntu:latest) die
2014-09-06T23:08:22+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2: (fromubuntu:latest) start
2014-09-06T23:08:22+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2: (fromubuntu:latest) restart
docker history: 顯示鏡像的歷史記錄
命令格式:
dockerhistory [OPTIONS] IMAGE
命令參數:
--no-trunc=false 不要截斷輸出
-q, --quiet=false 僅顯示容器ID
docker search: 在Docker Hub上尋覓鏡像
命令格式:
dockersearch TERM
命令參數:
--automated=false 使用Github或BitBucket的源代碼自動構建
--no-trunc=false 不要截斷輸出
-s, --stars=0 只顯示Star數量超過N的鏡像
例子:
docker search --starts=10 ubuntu
docker pull: 從遠程拉取鏡像
命令格式:
dockerpull NAME[:TAG]
例子:
docker pull ubuntu:latest
docker push: 推送鏡像到遠程倉庫
命令格式:
dockerpush NAME[:TAG]
例子:
docker push hyzhou/ubuntu:3.2.3
docker diff: 列出鏡像中文件和目錄的變化
命令格式:
dockerdiff CONTAINER
命令輸出: 輸出1共有3種
A- Add
D- Delete
C- Change
例子:
diff顯示的是鏡像和當前運行的容器之間的區分,所以diff的基礎是IMAGE
下面例子中的b705fc4f4a50和708cc7ec0f23,內容實際上是1樣的
sudo docker ps -a
CONTAINERID IMAGE COMMAND CREATED STATUS
b705fc4f4a50 new:latest "/bin/bash" 49 seconds ago Up 49 seconds
708cc7ec0f23 ubuntu:latest "/bin/bash" 9 minutes ago Up 9 minutes
sudo docker diff 7bb0e258aefe
C/root
A/root/new.txt
sudo docker diff b705fc4f4a50
docker commit: 將容器打包成新的鏡像
命令格式:
dockercommit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
命令參數:
-a, --author="" 作者信息,"John Hannibal Smith <hannibal@a-team.com>"
-m, --message="" 提交信息
-p, --pause=true 在提交鏡像時暫停容器
例子:
sudo docker ps
ID IMAGE COMMAND CREAT
上一篇 Android 消息推送
下一篇 簡練的端口掃描腳本