Docker Command CheatSheet

May 11, 2018

Photo by Kelly Sikkema on Unsplash

查詢指令使用方法

$ docker help [COMMAND NAME] # Ex: docker help run

Image 相關指令

$ docker images # 列出所有的 Image
$ docker serach [OPTIONS] TERM # 搜尋 Image
$ docker pull [OPTIONS] NAME[:TAG|@DIGEST] # 拉回 Image,tag 可以指定特定版號
$ docker push [OPTIONS] NAME[:TAG] # 推送 Image,tag 為加上特定版號
$ docker rmi [OPTIONS] IMAGE [IMAGE...] # 刪除 Image,可以使用 Image 名稱或是 ID,Options 為可選項,例如 `-f` 為強制刪除 Image
$ docker inspect [OPTIONS] NAME|ID [NAME|ID...] # Image 的詳細內容
$ docker image prune [OPTIONS] # 移除沒有使用的 Image

Contaniner 相關指令

$ docker ps [OPTIONS] # 列出所有 Container,預設列印出正在執行的 Container,可以加上 -a 來列出所有 Container
$ docker create [OPTIONS] IMAGE [COMMAND] [ARG...] # 建立 Container
$ docker rename CONTAINER NEW_NAME # 重新命名 Container
$ docker rm [OPTIONS] CONTAINER [CONTAINER...] # 移除一個或多個 Container
$ docker start [OPTIONS] CONTAINER [CONTAINER...] # 啟動一個或多個 Container
$ docker stop [OPTIONS] CONTAINER [CONTAINER...] # 停止執行一個或多個 Container
$ docker restart [OPTIONS] CONTAINER [CONTAINER...] # 重新啟動一個或多個 Container
$ docker pause CONTAINER [CONTAINER...] # 暫停一個或多個 Container
$ docker unpause CONTAINER [CONTAINER...] # 取消一個或多個暫停的 Container
$ docker exec [OPTIONS] CONTAINER COMMAND [ARG...] # 從外部執行 Container 內的程式
$ docker logs [OPTIONS] CONTAINER # 取得 Container 的 Log 資訊
$ docker kill [OPTIONS] CONTAINER [CONTAINER...] # Kill 一個或多個 Container
$ docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

docker run 的參數比較組合比較多樣,列出幾個我比較常用方法,歡迎留言補充!

$ docker run [NAME|ID] # 使用名稱或是 ID 來啟動 Container
$ docker run -d [NAME|ID] # 在背景執行 Container,並回傳 Container ID
$ docker run -p 8080:8000 [NAME|ID] # 綁定本機端與 Docker 的 Port,`:` **左邊**代表本機端,**右邊**則是 Docker Container 的 Port
$ docker run -it -p 8080:8000 [NAME|ID] /bin/sh # `-it` 的 `i` 代表打開 Container 的標準輸入,`t` 代表一個虛擬 Terminal
$ docker run --name [String] -it -p 8080:8000 [NAME|ID] /bin/sh #`--name` 可以為 Container 加上名稱
$ docker run --rm -it -p 8080:8000 [NAME|ID] /bin/sh # 當 Container 存在時,使用 `--rm` 自動將它移除
$ docker run --rm -p 8080:8000 -e NAME=FOO [NAME|ID] # `-e` 可以設定環境變數

Tricks

$ docker stop $(docker ps -a -q) # 停止所有 Container
$ docker rm -f $(docker ps -a -q) # 強制移除所有 Container
$ docker rmi -f $(docker images -q) # 強制移除所有 Image
$ docker rmi $(docker images -q -f dangling=true) # 移除所有 <none> 的 Image