1. 程式人生 > >Docker基礎 3.Docker常用命令

Docker基礎 3.Docker常用命令

Docker基礎

@Author:hanguixian
@Email:[email protected]

Docker文件:https://docs.docker.com/

Dcker中文文件:https://docs.docker-cn.com/


三.Docker常用命令

1.幫助命令

  • docker version [檢視版本]
  • docker info [檢視詳情]
  • docker –help [檢視相關命令使用]

2.映象命令

  • 列出主機上的映象:docker images [options]

    • 各個選項說明:
      • REPOSITORY: 表示映象的倉庫源
      • TAG: 映象的標籤
      • IMAGE ID:映象ID
      • CREATED:映象建立時間
      • SIZE: 映象大小
      • 同一倉庫源可以有多個TAG,代表這個倉庫源的不同個版本,我們使用REPOSITORY:TAG來定義不同的映象。如果你不指定一個映象的版本標籤,例如你只使用ubuntu, docker將預設使用ubuntu:latest映象
    • options說明:
      • -a :列出本地所有的映象(含中間映像層)
      • -q:只顯示映象ID
      • –digests:顯示映象的摘要船息
      • –no-trunc :顯示完整的映象資訊
  • 搜尋映象: docker search xxx映象的名字

    • 網站 https://hub.docker.com
    • 命令:
    • docker search [OPTIONS] 映象名字
    • OPTIONS說明:
      • –no-trunc : 顯示完整的映象描述 命令
      • -s:列出收藏數不小於指定值的映象。
      • – automated:只列出automated build型別的映象;
  • 下載映象:docker pull xxx

    • docker pull 映象名字[:TAG]
  • 刪除映象: docker rmi xxx映象名字ID

    • 刪除單個 docker rmi -f 映象ID
    • 刪除多個 docker rmi -f 映象名1:TAG 映象名2:TAG [例子: docker rmi -f hello-world nginx]
    • 刪除全部 docker rmi -f $(docker images -qa)

3.容器命令

  • 新建並啟動容器: docker run [OPTIONS] IMAGE [COMMAND][ ARG...]

    • 例如: docker run -it asdaswew

    • OPTIONS說明(常用) :有些是一個減號,有些是兩個減號

      • –name=”容器新名字”:為容器指定一一個名稱;
      • -d:後臺執行容器,並返回容器ID,也即啟動守護式容器;
      • -i: 以互動模式執行容器,通常與-t同時使用;
      • -t:為容器重新分配一個偽輸入終端,通常與-i同時使用;
      • -P:隨機埠對映;
      • -p:指定埠對映,有以下四種格式
      • ip:hostPort:containerPort
      • ip::containerPort
      • hostPort:containerPort
      • containerPort
  • 列出當前所有正在執行的容器:docker ps [OPTIONS]

    • OPTIONS說明(常用)
      • -a :列出當前所有正在執行的容器+歷史上執行過的
      • -l:顯示最近建立的容器。
      • -n: 顯示最近n個建立的容器。
      • -q :靜默模式,只顯示容器編號。
      • –no-trunc :不截斷輸出
  • 退出容器

    • exit:容器停止退出
    • ctrl+P+Q:容器不停止退出
  • 啟動

    • docker start 容器id 或 容器名
  • 重啟

    • docker restart 容器id 或 容器名
  • 停止

    • docker stop 容器id 或 容器名
  • 強制停止

    • docker kill 容器id 或 容器名
  • 刪除已停止的

    • docker rm 容器id
    • 一次性刪除多個容器
      • docker rm -f $(docker ps -a -q)
      • docker ps -a -q | xargs docker rm
  • 重點

    • 啟動守護式容器 docker run -d 容器名

      • 使用映象centos:latest 以後臺模式啟動一個容器 docker run -d centos 問題:然後docker ps -a進行檢視,會發現容器已經退出
      • 很重要的要說明的一點: Docker容器後臺執行,就必須有一個前臺程序. 容器執行的命令如果不是那些一直掛起的命令 (比如執行top, tail) ,就是會自動退出的。
      • 這個是docker的機制問題,比如你的web容器,我們以nginx為例,正常情況下,我們配置啟動服務只需要啟動響應的service即可。例如service nginx start 但是,這樣故,nginx為後臺程序模式執行,就導致docker前臺沒有執行的應用,這樣的容器後臺啟動後,會立即自殺因為他覺得他沒事可做了.所以,最佳的解決方案是,將你要執行的程式以前臺程序的形式執行
    • 檢視容器日誌

      • docker logs -f -t –tail 容器ID 或 容器名
      • 例子: docker logs -f -t –tail 3 e4
        • -t:加入時間戳
        • -f:更隨最新的的日誌列印
        • –tail:數字 顯示最後多少條
    • 檢視容器內執行的程序

      • docker top 容器id 或 容器名字
    • 檢視容器內部細節

      • docker inspect 容器id
    • 進入正在執行的容器並以命令列互動

      • ①docker exec -it 容器id bashshell

        • 例子: docker exec -it e49bfba4816f /bin/bash

          ​ docker exec -t e49bfba4816f ls -l /tmp

      • ②重新進入docker attach 容器id

      • 兩者區別:

        • attach 直接進入容器啟動命令的終端,不會啟動新的程序
        • exec 實在容器中開啟新的終端,並且可以啟動新的程序
    • 從容器內拷貝檔案到主機上

      • docker cp 容器id:容器內路徑 目的主機路徑
        • 例子: docker cp e49bfba4816f :/tmp/yum.log /root
  • 4.總結——常用命令

    常用命令

命令 描述 中文描述
attach Attach to a running container 當前shell下attach連線指定執行映象
build Build an image from a Dockerfile 通過Dockerfile定製映象
commit Create a new image from a container changes 提交當前容器為新的映象
cp Copy files/folders from the containers filesystem to the host path 從容器中拷貝指定檔案或者目錄到宿主機中
create Create a new container 建立一個新的容器,同run,但不啟動容器
diff nspect changes on a container’s filesystem 檢視docker容器變化
events Get real time events from the server 從docker服務獲取容器實時事件
exec Run a command in an existing container 在已存在的容器上執行命令
export Stream the contents of a container as a tar archive 匯出容器的內容流作為一個 tar歸檔檔案[對應import]
history Show the history of an image 展示一個映象形成歷史
images List images 列出系統當前映象
import Create a new filesystem image from the contents of a tarball 從tar包中的內容建立一個新的檔案系統映像[對應export]
info Display system-wide information 顯示系統相關資訊
inspect Return low-level information on a container 檢視容器詳細資訊
kill Kill a running container kill指定docker容器
load Load an image from a tar archive 從一個tar包中載入一一個映象[對應save]
login Register or Login to the docker registry server 註冊或者登陸一個docker源伺服器
logout Log out from a Docker registry server 從當前Docker registry退出
logs Fetch the logs of a container 輸出當前容器日誌資訊
port Lookup the public-facing port which is NAT-ed to PRIVATE_ PORT 檢視對映埠對應的容器內部源埠
pause Pause all processes within a container 暫停容器
ps List containers 列出容器列表
pull Pull an image or a repository from the docker registry server 從docker映象源伺服器拉取指定映象或者庫映象
push Push an image or a repository to the docker registry server 推送指定映象或者庫映象至docker源伺服器
restart Restart a running container 重啟執行的容器
rm Remove one or more containers 移除一個或者多個容器
rmi Remove one or more images 移除一個或多個映象[無容器使用該映象才可刪除,否則需刪除相關容器才可繼續或 -f 強制刪除]
run Run a command in a new container 建立一個新的容器並執行一個命令
save Save an image to a tar archive 儲存一個映象為一個tar包[對應load]
search Search for an image on the Docker Hub 在dockerhub中搜索映象
start Start a stopped containers 啟動容器
stop Stop a running containers 停止容器
tag Tag an image into a repository 給源中映象打標籤
top Lookup the running processes of a container 檢視容器中執行的程序資訊
unpause Unpause a paused container 取消暫停容器
version Show the docker version information 檢視docker版本號
wait Block until a container stops, then print its exit code 擷取容器停止時的退出狀態值