[容器] 容器技術之 Docker 篇 - 指令操作

上一篇整理了概念,這一篇來整理常用的指令,雖然也有 GUI 操作 docker 的服務,但透過指令還是比較快的

Image 相關

  • 列出本機端擁有的 images

    1
    docker images
    • -a:列出完整的映像檔層次資訊。每個映像檔是由不同層次組成的,我們會在稍後說明。
    • -q:只列出映像檔ID。這在做映像檔批次處理時很方便。
    • -tree:官方文件已經沒有這個參數,但還是可以用。列出映像檔不同層次之間的樹狀關係。
  • 下載 Image

    1
    docker pull <image name>
  • 刪除 Image

    1
    docker rmi <image name>
  • 幫 Image 上 Tag

    1
    docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
  • 建置 Image 檔

    1
    docker build
  • 上傳 Image 檔

    1
    docker push

Container 相關

執行時的操作指令

  • 建立 Container 並執行指令

    1
    2
    docker create [OPTIONS] IMAGE [COMMAND] [ARG...] // 建立但不會啟動執行 Container 
    docker run [OPTIONS] IMAGE [COMMAND] [ARG...] // 建立且啟動執行 Container
    • -d : 背景執行
    • -i: 輸入
    • -t: 輸出
    • --name: 給 Container 名稱
    • -p [本機 Port]:[Container 內部 Port]: Port mapping
    • -v: 掛載 volumes
    • -rm: 執行結束後自動移除
    • 相關參數請參閱 Docker docs
  • 刪除執行中的 Container,但 Container 還是存在,只是死了。

    1
    docker kill CONTAINER
    • --signal, -s : 送訊號到 Container
  • 移除 Container(停止或運行中都行),Container就從這世上消失了

    1
    docker rm CONTAINER
    • --force, -f : 強制移除
    • --link, -l 移除特定連結
    • --volumnes, -v 移除掛載在 Container 上的匿名 volumes
  • 暫停執行中的 Container,仍暫有記憶體停,服務不中斷

    1
    docker pause CONTAINER [CONTAINER...]
  • 恢復暫停中的 Container

    1
    docker unpause CONTAINER [CONTAINER...]
  • 停止執行中的 Container,但不暫有記憶體,服務中斷

    1
    docker stop [OPTIONS] CONTAINER [CONTAINER...]
    • --time, -t 幾秒後停止 Container
  • 啟動停止中的 Container

    1
    docker start [OPTIONS] CONTAINER [CONTAINER...]
    • --attach, -a : Attach STDOUT/STDERR and forward signals
    • --interactive, -i: Attach container’s STDIN
  • 重新啟動Container

    1
    docker restart [OPTIONS] CONTAINER [CONTAINER...]
    • --time, -t: 幾秒後重啟 Container
  • 讓 Container 暫停直到 Container 停止為止

    1
    docker wait CONTAINER [CONTAINER...]
  • 更名 Container

    1
    docker rename CONTAINER NEW_NAME

狀態

  • inspect:檢查 Container 的狀態
  • stats:查看 Container 的 CPU、記憶體及網路使用
  • port:查看 Container 的通訊埠使用
  • ps:查看 Container 使用狀態
    • -a 列出所有的 Container
  • top:查看 Container 在主系統中的記憶體使用
  • dpid:查看 Container 的 pid

執行時的操作

  • attach:連接 Container 的標準輸出輸入端

    • 使用-d-id參數:離開 Container 時該 Container 停止。
    • 使用-td參數:離開 Container 時該 Container 繼續在背景。
  • exec:在外部向 Container 內執行指令

  • denter:進入 Container

  • logs:將 Container 內的輸出顯示到螢幕上

  • cp: 複製檔案到 Container

    1
    docker cp /path/to/file1 DOCKER_ID:/path/to/file2

Registry 相關

  • 登入

    1
    2
    docker login // 預設指向 public docker hub
    docker loing <ip> // 登入私有 docker registry
  • 登出

    1
    docker logout
  • 搜尋

    1
    2
    3
    docker search <search word>
    // 查詢星星數條件
    docker search -s <n start> <search word>
    • n 是限定須有幾顆星以上的 image 才會被搜尋出來

參考資料