全面易懂的Docker指令大全

Container指令基礎

Docker有關Container的指令是最多樣的,而光一個docker run就有非常非多的參數。我們在這邊先將最基本的Container指令列出,讓讀者們能先能感受一下Docker的強大。

這邊列出Docker有關Container指令的分類方便讀者查詢,粗體表示常用指令,會有講解說明。

Container和映像檔之間的操作

  • commit:將Container的改變存入映像檔
  • export:將Container存成快照
  • import:從Container快照恢復成映像檔

Container執行時的操作

  • create:建立Container並執行指令
  • run:同create
  • kill:刪除執行中的Container,但Container還是存在,只是死了。
  • rm:刪除Container(停止或運行中都行),Container就從這世上消失了
  • pause:暫停執行中的Container,仍暫有記憶體停,服務不中斷
  • unpause:恢復暫停中的Container
  • stop:停止執行中的Container,但不暫有記憶體,服務中斷
  • start:啟動停止中的Container
  • restart:重新啟動Container
  • wait:讓Container暫停直到Container停止為止
  • rename:更名Container

Container的狀態

  • inspect:檢查Container的狀態(非常常用)
  • stats:查看Container的CPU、記憶體及網路使用
  • port:查看Container的通訊埠使用
  • ps:查看Container使用狀態
  • top:查看Container在主系統中的記憶體使用
  • dip:查看Container的IP
  • dpid:查看Container的pid

Container執行時的操作

  • attach:連接Container的標準輸出輸入端
  • exec:在外部向Container內執行指令
  • denter:進入Container
  • logs:將Container內的輸出顯示到螢幕上

Container和主系統之間的操作

  • cp:複製Container內的檔案到主系統
  • diff:列出兩個Container之間檔案系統差異
  • events:列出某個時間點之前或之後的事件

和Linux的指令配合使用

Docker的執行常常和Linux的內部指令配合使用,如grepawkxargs等,會在需要的時候提及。下面的例子就是列出所有Container的狀態(docker stats預設只會列出指定Container的狀態)。

docker ps | awk 'NR>1 {print $NF}'| xargs docker stats

$ docker stats $(docker ps | awk 'NR>1 {print $NF}')
CONTAINER           CPU %               MEM USAGE/LIMIT     MEM %               NET I/O
web12               0.00%               8.742 MiB/128 MiB   6.83%               131.2 KiB/150.8 KiB
web14               0.01%               38.43 MiB/128 MiB   30.02%              181.6 KiB/211.9 KiB