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
排障三部曲(背下來)#
docker ps -a——容器在跑嗎?狀態碼是什麼?(Exited (1)表示異常結束)docker logs --tail 100 <容器>——日誌裡的錯誤訊息幾乎都會告訴你原因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
想一想#
- 遮住答案,你能默寫這 10 個指令嗎?
- 容器一啟動就掛掉,你的前三步是什麼?
- 哪些指令你已經用得很熟?哪些還需要練?