跳轉到

6.1 最常使用的 10 個 Docker 命令#

80/20 法則:這 10 個指令涵蓋日常 80% 的操作#

# 指令 用途
1 docker ps -a 查看所有容器(含已停止)——排障第一步
2 docker run -d -p 8080:80 --name x <image> 啟動容器(背景 + 埠對映 + 命名)
3 docker logs -f <容器> 追蹤容器日誌——排障第二步
4 docker exec -it <容器> bash 進入容器終端機(精簡鏡像用 sh)
5 docker build -t app:v1 . 建構自己的 Image
6 docker images 查看本地 Image
7 docker stop <容器> / docker start <容器> 停止/恢復容器(設定保留)
8 docker rm <容器> 刪除容器(資料消失)
9 docker compose up -d / docker compose down 一鍵啟動/清理整組服務
10 docker system prune 清理未使用資源(下一節詳述)

每個指令的最小記憶卡#

# 1. 看狀態
docker ps -a                          # -a 看全部,不加只看執行中

# 2. 跑容器
docker run -d -p 8080:80 --name web nginx
#            │  └─┬─┘  └──┬──┘  └┬┘ └─ Image
#          背景   主機:容器  名字

# 3. 看日誌
docker logs -f web                    # -f 持續追蹤

# 4. 進容器
docker exec -it web bash              # -i 輸入 -t 終端機

# 5. 建鏡像
docker build -t my-app:v1 .           # 那個點是建構上下文

# 6. 看鏡像
docker images

# 7. 停止與恢復
docker stop web && docker start web

# 8. 刪除
docker rm -f web                      # -f 強制刪執行中的

# 9. Compose
docker compose up -d && docker compose down

# 10. 清理
docker system prune

排障三部曲(背下來)#

  1. docker ps -a——容器在跑嗎?狀態碼是什麼?(Exited (1) 表示異常結束)
  2. docker logs --tail 100 <容器>——日誌裡的錯誤訊息幾乎都會告訴你原因
  3. docker exec -it <容器> sh——進去看檔案、看設定、試指令

這三步能解決 80% 的容器問題。

常用速查:實戰起手式#

# 一秒啟動 Nginx
docker run -d -p 8080:80 --name web nginx

# 一秒啟動 Redis
docker run -d -p 6379:6379 --name cache redis

# 一秒啟動 PostgreSQL
docker run -d -p 5432:5432 --name db \
  -v pgdata:/var/lib/postgresql/data \
  -e POSTGRES_PASSWORD=mysecret postgres

# 一次性任務:用完即刪
docker run --rm python:3.12 python -c "print('hello')"

# 開發熱重載:掛載當前目錄
docker run --rm -p 8000:8000 -v $(pwd):/app -w /app python:3.12 python app.py

本章小結#

  • 10 個指令涵蓋日常 80% 的操作
  • 排障三部曲:ps -a → logs → exec
  • 一次性任務加 --rm,伺服器類加 -d
  • 多容器架構,一律用 Compose,不用逐個 docker run

想一想#

  1. 遮住答案,你能默寫這 10 個指令嗎?
  2. 容器一啟動就掛掉,你的前三步是什麼?
  3. 哪些指令你已經用得很熟?哪些還需要練?