Docker命令詳解

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
 
docker run: 在一個新的容器中執行命令 (CTRL-p CTRL-q 退出至後臺運行)
  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

  docker ps [OPTIONS]
  命令參數:
  -a, --all=false            顯示全部容器,包括當前沒有運行的容器
  -f, --filter=[]               按條件過濾容器, 可選的過濾選項:
  exited=<int> 容器的返回值
  -l, --latest=false       顯示最新的一個容器
  -n num  顯示最新的N個容器
  --no-trunc=false       不要截斷輸出
  -q, --quiet=false       僅顯示容器ID
  -s, --size=false        顯示容器大小

  例:ubuntu

  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

  例子:bash

  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: 顯示鏡像或容器的詳細信息ui

  docker inspect CONTAINER|IMAGE [CONTAINER|IMAGE...]
  命令參數:
  -f, --format=""                  選擇輸出內容,--format="{{.NetworkSettings.IPAddress}}"
  例子:
  sudo docker inspect 7bb0e258aefe
  sudo dockerinspect --format "{{.State.Pid}}" 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: 重啓運行中的容器
  d ocker restart [OPTIONS] CONTAINER [CONTAINER...]
  命令參數:
  -t, --time=10                     殺掉容器進程以前,等待的時間
  例子:
  sudo docker restart 7bb0e258aefe

   

 
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
相關文章
相關標籤/搜索