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:?掛載正在后臺運行的容器到前臺
命令格式:
docker attach [OPTIONS] CONTAINER
命令參數:
--no-stdin=false???????????不掛載輸入流
--sig-proxy=true???????????代理接收系統信息,(除SIGCHLD\SIGKILL\SIGSTOP以外)
例子:
ID=$(sudo docker run -d -i -tubuntu /bin/bash)
sudo docker attach $ID
?
docker run:?在一個新的容器中執行命令?(CTRL-p CTRL-q?退出至后臺運行)
請參考?http://blog.csdn.net/hyzhou33550336/article/details/41703629
命令格式:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
例子:
sudo docker run -i -t ubuntu:14.04?/bin/bash?????????啟動一個新的Ubuntu容器
sudo docker run?--rm?-i -t ubuntu:14.04/bin/bash???建議新手測試加上?-—rm
sudo docker run -i -t?--name "private_container"?ubuntu:14.04?/bin/bash
?
docker ps:?列出當前容器
命令格式:
docker ps [OPTIONS]
命令參數:
-a, --all=false ? ? ? ? ? ?顯示所有容器,包括當前沒有運行的容器
--before="" ? ? ? ? ? ? ??顯示在某一個指定ID或Name的容器之前的容器
--since="" ? ? ? ? ? ? ? ??顯示在某一個指定ID或Name的容器之后的容器
-f, --filter=[]?? ? ? ? ? ? ?按條件過濾容器,?可選的過濾選項:
exited=<int>?容器的返回值
-l, --latest=false?? ? ?顯示最新的一個容器
-n?num?顯示最新的N個容器
--no-trunc=false?? ? ?不要截斷輸出
-q, --quiet=false?? ? ?僅顯示容器ID
-s, --size=false?? ? ? ?顯示容器大小
例子:
docker ps? ? ? ? ? ? ? ? ? ? ? ? ? ? ??當前正在運行的容器
docker ps -a??????????????????????????當前正在運行或是停止的容器
docker ps -a -q --no-trunc????獲得當前所有容器的ID,不截斷輸出
docker rm?$(echo $(docker ps -q --no-trunc) $(dockerps -a -q--no-trunc) | sed 's|\s|\n|g'?|sort | uniq -u)
刪除當前不在運行狀態的容器ID,也可以把前面改成docker rm
?
docker images:?列出當前鏡像
命令格式:
docker images [OPTIONS] [NAME]
命令參數:
-a, --all=false????????????顯示所有鏡像,包括中間生成的臨時鏡像
-f, --filter=[]??????? ? ? ? ?通過標簽過濾?(i.e. 'dangling=true')
--no-trunc=false?????? ?不要截斷輸出
-q, --quiet=false????????僅顯示容器ID
例子:
docker images? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?顯示當前倉庫中的鏡像
docker images -a? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?顯示當前倉庫中的鏡像與臨時鏡像
docker images -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?????????(隨便執行一些命令可以看到終端A會有實時輸出)
?
docker inspect:?顯示鏡像或容器的詳細信息
命令格式:
docker inspect CONTAINER|IMAGE [CONTAINER|IMAGE...]
命令參數:
-f, --format=""????? ? ? ? ? ? ??選擇輸出內容,--format="{{.NetworkSettings.IPAddress}}"
例子:
sudo docker inspect?7bb0e258aefe
sudo dockerinspect--format='{{.NetworkSettings.IPAddress}}' 7bb0e258aefe
?
docker stop:?停止運行中的容器?(CTRL-d?強制退出,?Exited (0))
命令格式:
Docker stop [OPTIONS] CONTAINER [CONTAINER...]
命令參數:
-t, --time=10??????? ? ? ? ? ? ??殺掉容器進程之前,等待的時間
例子:
sudo docker?stop?7bb0e258aefe
?
docker kill:?殺掉一個運行中的容器?(Exited (-1))
命令格式:
docker kill [OPTIONS] CONTAINER [CONTAINER...]
命令參數:
-s, --signal="KILL"? ? ? ? ??選擇向容器發出的Signal
例子:
sudo docker?kill?7bb0e258aefe
?
docker start:?重啟停止的容器
命令格式:
Docker start CONTAINER [CONTAINER...]
命令參數:
-a,--attach=false?????????Attach container'sSTDOUT and STDERR and forward allsignals to the process
-i,--interactive=false???Attach container'sSTDIN
例子:
sudo docker?start?7bb0e258aefe
?
docker restart:?重啟運行中的容器
命令格式:
docker restart [OPTIONS] CONTAINER [CONTAINER...]
命令參數:
-t, --time=10??????? ? ? ? ? ? ? ?殺掉容器進程之前,等待的時間
例子:
sudo docker?restart?7bb0e258aefe
?
docker wait:?等待容器退出
命令格式:
docker wait CONTAINER [CONTAINER...]
例子:
A終端:
sudo docker wait 708cc7ec0f23??????? ?A終端阻塞,等待容器關閉
B終端:
sudo docker?restart?708cc7ec0f23????從B終端關閉容器,A終端顯示0,結束阻塞,返回
?
docker cp:?拷貝容器中的文件
命令格式:
docker cp CONTAINER:PATH HOSTPATH
例子:
docker cp?c3f279d17e0a:/home/hyzhou/answer.txt .??將鏡像中的/home/hyzhou/answer.txt文件拷貝到當前目錄下
?
docker rm:?刪除容器
命令格式:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
命令參數:
-f, --force=false??????? ? ? ??強制刪除容器(使用SIGKILL)
-l, --link=false???????? ? ? ? ??Removethe specified link and not the underlyingcontainer
-v, --volumes=false????????Removethe volumes associated with the container
例子:
docker rm?my_ubuntu?????? ? ? ? ??刪除容器
docker rm?708cc7ec0f23???????????刪除容器
docker rm $(docker ps -a -q)????刪除所有容器
?
docker top:?查看容器輸出
命令格式:
docker top CONTAINER [ps OPTIONS]
例子:
[ps OPTIONS]的意思是,?你可以在這個命令后面加上使用ps命令時的各種參數
sudo docker top?708cc7ec0f23
sudo docker top?708cc7ec0f23?aux
?
docker events:?實時監聽容器的事件
命令格式:
docker events [OPTIONS]
命令參數:
--since=""?????????? ? ? ? ? ? ?顯示某一個時間戳之后的events
--until=""?????????? ? ? ? ? ? ? ?實時監聽到某個時間戳為止
例子:
A終端:
sudo docker?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 +0200CEST'
sudo docker events > docker.log &???后臺記錄Docker的容器事件
B終端:
sudo docker?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:?顯示鏡像的歷史記錄
命令格式:
docker history [OPTIONS] IMAGE
命令參數:
--no-trunc=false??????? ? ? ??不要截斷輸出
-q, --quiet=false?????? ? ? ? ?僅顯示容器ID
?
docker search:?在Docker Hub上尋找鏡像
命令格式:
docker search TERM
命令參數:
--automated=false?????????使用Github或BitBucket的源代碼自動構建
--no-trunc=false????? ? ? ? ?不要截斷輸出
-s, --stars=0????????? ? ? ? ? ?只顯示Star數量超過N的鏡像
例子:
docker search?--starts=10 ubuntu
?
docker pull:?從遠程拉取鏡像
命令格式:
docker pull NAME[:TAG]
例子:
docker pull ubuntu:latest
?
docker push:?推送鏡像到遠程倉庫
命令格式:
docker push NAME[:TAG]
例子:
docker push?hyzhou/ubuntu:3.2.3
?
docker diff:?列出鏡像中文件和目錄的變化
命令格式:
docker diff CONTAINER
命令輸出:?輸出一共有三種
A- Add
D- Delete
C- Change
例子:
diff顯示的是鏡像和當前運行的容器之間的區別,所以diff的基礎是IMAGE
下面例子中的b705fc4f4a50和708cc7ec0f23,內容其實是一樣的
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:?將容器打包成新的鏡像
命令格式:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
命令參數:
-a, --author=""?????? ? ? ? ? ??作者信息,"John Hannibal Smith <hannibal@a-team.com>"
-m, --message=""????? ? ? ??提交信息
-p, --pause=true????? ? ? ? ?在提交鏡像時暫停容器
例子:
sudo docker ps
ID??????????????????IMAGE???????????????COMMAND?????????????CREATED?????????????STATUS
c3f279d17e0a????????ubuntu:12.04????????/bin/bash???????????7 days ago??????????Up 25 hours
197387f1b436????????ubuntu:12.04????????/bin/bash???????????7 days ago??????????Up 25 hours
docker commitc3f279d17e0a?Hyzhou/my_ubuntu:3.2.3
docker commit?-a "Hyzhou<hyzhou@qq.com>" -m "addthe new software"?c3f279d17e0aHyzhou/my_ubuntu:3.2.3
docker images
REPOSITORY????????????????????????TAG?????????????????ID??????????????????CREATED?????????????VIRTUAL SIZE
Hyzhou/my_ubuntu??????????????????3.2.3???????????????f5283438590d????????16 seconds ago??????335.7 MB
?
docker build:?使用Dockerfile構建新鏡像
命令格式:
docker build [OPTIONS] PATH|URL|-
命令參數:
--force-rm=false?????? ? ? ? ?移除構建時生成的中間容器
--no-cache=false?????? ? ? ??Donot use cache when building the image
-q, --quiet=false????? ? ? ? ? ?不顯示容器的輸出
--rm=true????????????? ? ? ? ? ? ?構建成功后,移除構建時生成的中間容器
-t, --tag=""?????????? ? ? ? ? ? ? ?構建成功后,新建鏡像的名稱
?
docker tag:?為鏡像加上標簽
命令格式:
docker tag [OPTIONS] IMAGE[:TAG][REGISTRYHOST/][USERNAME/]NAME[:TAG]
命令參數:
-f, --force=false????? ? ? ? ? ??強制打上標簽?
例子:
sudo docker tag?ubuntu:latest?hyzhou/my_ubuntu:3.2.3????給ubuntu:latest打上新TAG:hyzhou/my_ubuntu:3.2.3
sudo?dockertag eb601b8965b8 ubuntu:latest?????????????給eb601b8965b8鏡像打上TAG:?ubuntu:latest(會轉換原有的TAG指向)
?
docker save:?將image保存為tar壓縮文件
命令格式:
docker save [OPTIONS] IMAGE [IMAGE...]
命令參數:
-o, --output=""????? ? ? ? ? ? ??寫入到一個文件中作為輸出,默認是標準輸出流
例子:
docker save --output?ubuntu.tar?ubuntu:latest??將Ubuntu的最新鏡像打包為ubuntu.tar
docker save ubuntu:latest > ubuntu.tar??????????將Ubuntu的最新鏡像打包為ubuntu.tar
?
docker load:?將tar壓縮文件保存為image
命令格式:
Docker load [OPTIONS]
命令參數:
-i, --input=""????? ? ? ? ? ? ? ??讀取一個壓縮文件作為輸入,默認是標準輸入流
例子:
docker load --input ubuntu.tar??????????????????讀取ubuntu.tar作為鏡像
docker load < ubuntu.tar????????????????????????讀取ubuntu.tar作為鏡像
?
docker export:?把容器系統文件打包并導出來,方便分發給其他場景使用。
命令格式:
docker export CONTAINER
例子:
sudo docker export my_ubuntu > ubuntu.tar???????將Ubuntu的最新鏡像打包為ubuntu.tar
?
docker import:?加載容器系統文件
命令格式:
docker import URL|- [REPOSITORY[:TAG]]
例子:
sudo docker import?http://example.com/exampleimage.tgz
cat exampleimage.tgz | sudodocker import -exampleimagelocal:new