跳至主要内容

Docker 常用指令與生命週期速查表

這份速查表整理了 Docker 在實務中最常用的指令,並且依照「基礎操作」與「容器生命週期狀態」進行分類,方便開發時快速查找。

1. 基礎與 Image 指令速查

指令 (Command)用途與說明
docker version查看 Docker 引擎版本與系統詳細規格
docker image build -t <名稱> .根據當前目錄的 Dockerfile 打包建立新的 Image
docker image ls顯示目前本地端已下載或打包的所有映像檔清單
docker login登入 Docker Hub 帳號 (推播 Image 前必備)
docker image push <帳號/名稱>將本機打包好的 Image 推送到 Docker Hub
docker image pull <帳號/名稱>從 Docker Hub 下載指定的映像檔
docker image rm <IMAGE ID>刪除指定的映像檔 (須確認無容器正在使用該映像檔)

2. Container 生命週期狀態與對應指令

容器從建立到銷毀會經歷多個狀態,下表列出了每個狀態與切換該狀態的常用指令。

目標狀態 (State)執行指令說明
Created (已建立)docker container create <IMAGE>僅建立容器但不啟動 (實務上較少單獨使用)
Running (運行中)docker container run -d -p 80:80 <IMAGE>**最常用!**一條龍完成「建立」並在「背景運行」
docker container start <CONTAINER ID>將「已經停止」的容器重新啟動
Paused (暫停)docker container pause <CONTAINER ID>暫停容器的所有運算程序 (釋放 CPU 資源)
docker container unpause <CONTAINER ID>解除暫停,恢復運行
Stopped (已停止)docker container stop <CONTAINER ID>安全停止一個運行中的容器
Restarting (重啟)docker container restart <CONTAINER ID>重新啟動容器 (等同於幫容器關機再開機)
Removing (徹底刪除)docker container rm <CONTAINER ID>徹底刪除已停止的容器
docker container prune -f**大掃除指令!**一鍵刪除「所有未啟用」的容器

3. Container 日常查詢與進階除錯

當容器處於 Running 狀態時,工程師最常使用以下指令來進行觀察或問題排查:

指令 (Command)用途與說明
docker container ls查看目前正在運行的 Container 清單 (同 docker ps)
docker container ls -a查看所有的 Container 清單 (包含已經停止的)
docker container exec -it <ID> sh**實務最常用!**新開一個終端機進入 Container 內部下指令
docker container attach <ID>監看 Container 的即時輸出 (⚠️ 按 Ctrl+C 會關閉服務)
docker container inspect <ID>查詢該容器的完整規格、內部設定、環境變數或掛載路徑

4. Docker 網路 (Network) 指令

當需要讓多個容器 (例如 Node.js 專案與 MongoDB) 可以直接用「名字」互相連線時,必須使用自訂網路。

指令 (Command)用途與說明
docker network ls查看目前 Docker 內所有的網路清單
docker network create <名稱>建立一個全新的自訂網路 (Bridge Network)
... run --network <名稱>在啟動容器時,透過此參數將容器加入指定的網路中
... run --name <名字>幫啟動的容器自訂名稱,同網路下的其他容器可直接用此名稱互相連線

5. Docker 儲存空間 (Volume) 指令

當需要確保容器刪除後,資料庫或上傳的檔案依然能被保留時(資料持久化),必須透過 Volume 來管理儲存空間。

指令 (Command)用途與說明
docker volume ls查看目前所有的 Volume 空間清單
docker volume create <名稱>建立一個全新的 Volume 儲存空間
docker volume rm <名稱>刪除指定的 Volume 空間 (須確認目前沒有任何容器正在掛載使用它)
docker volume prune -f大掃除指令! 一鍵刪除所有「沒有被任何容器掛載」的閒置 Volume
... run -v <Volume名稱>:<容器內部路徑>在啟動容器時,將該 Volume 空間掛載到指定的容器內部路徑

6. 跨平台多架構打包 (Buildx) 指令

解決 Mac (ARM 架構) 打包出來的 Image,在 Windows / Linux 伺服器 (AMD64) 上無法運行報錯的進階工具。

指令 (Command)用途與說明
docker buildx ls查看目前的打包建構器 (Builder) 清單
docker buildx create --name <名稱> --use建立並切換到一個支援多架構打包的「專屬建構器」
docker buildx build --platform <平台> -t <名稱> . --push執行多架構打包 (例如 linux/arm64,linux/amd64),並強制規定必須加上 --push 直接推送到 Docker Hub

7. Docker Compose 指令

當專案需要同時啟動多個容器 (例如 Node.js + MongoDB) 時,透過撰寫 docker-compose.yml 來實現一鍵部署與管理的進階工具。

指令 (Command)用途與說明
docker compose up -d一鍵啟動! 根據當前目錄的 .yml 檔,自動建構並在背景運行所有服務
docker compose ps查看目前這個 Compose 專案下,所有專屬容器的運行狀態
docker compose logs -f除錯神招! 即時監看這個 Compose 專案下,所有容器的 Log 輸出總匯
docker compose down一鍵關閉! 停止並刪除這個專案下的所有容器與網路 (不會刪除 Volume)
docker compose down -v⚠️ 一鍵毀滅! 連同掛載的 Volume 永久資料也一併徹底刪除