建立 2025-08-18
更新 2026-09-28
Docker 常用指令速查
本頁把 Docker 最常用的指令依用途整理在一起,忘記指令或參數時可以快速查詢。每個指令的詳細說明,請看各主題的教學頁面。
容器
| 指令 |
用途 |
docker run -d --name web -p 8080:80 nginx |
背景啟動容器,取名 web,開放 8080 埠 |
docker run --rm -it alpine sh |
啟動並進入容器,離開後自動刪除 |
docker ps |
列出執行中的容器 |
docker ps -a |
列出所有容器(含已停止) |
docker logs -f web |
持續查看日誌 |
docker exec -it web sh |
進入執行中的容器 |
docker stop web |
停止容器 |
docker start web |
啟動已停止的容器 |
docker restart web |
重新啟動 |
docker rm web |
刪除已停止的容器 |
docker rm -f web |
強制停止並刪除 |
docker cp web:/etc/nginx/nginx.conf . |
從容器複製檔案到電腦 |
docker stats |
即時查看 CPU、記憶體用量 |
docker inspect web |
查看容器的詳細設定 |
docker run 常用參數
| 參數 |
用途 |
範例 |
-d |
背景執行 |
|
--name |
容器名稱 |
--name web |
-p |
連接埠對應(電腦:容器) |
-p 8080:80 |
-v |
掛載 Volume 或資料夾 |
-v mydata:/data、-v $(pwd):/app |
-e |
設定環境變數 |
-e TZ=Asia/Taipei |
--env-file |
從檔案讀取環境變數 |
--env-file .env |
--network |
接到指定網路 |
--network mynet |
-it |
互動模式,可以在容器裡打字 |
-it alpine sh |
--rm |
結束後自動刪除 |
|
--restart |
自動重啟策略,常用 unless-stopped |
--restart unless-stopped |
--user |
指定執行身分 |
--user 1000:1000 |
--cpus、--memory |
限制資源 |
--cpus 1 --memory 512m |
--platform |
指定 CPU 架構 |
--platform linux/amd64 |
--rm 和 --restart 不能同時使用:一次性的容器用 --rm,長期執行的服務用 --restart。
Image
| 指令 |
用途 |
docker pull nginx:1.28 |
下載 Image |
docker images |
列出電腦上的 Image |
docker rmi nginx:1.28 |
刪除 Image |
docker build -t myapp:1.0 . |
用目前資料夾的 Dockerfile 建置 |
docker build -f Dockerfile.prod -t myapp:1.0 . |
指定 Dockerfile 檔名 |
docker build --no-cache -t myapp:1.0 . |
不使用快取,完全重新建置 |
docker tag myapp:1.0 myname/myapp:1.0 |
加上新名稱(上傳到 Docker Hub 前需要) |
docker login |
登入 Docker Hub |
docker push myname/myapp:1.0 |
上傳 Image |
docker history myapp:1.0 |
查看每一層的大小 |
Docker Compose
在 compose.yaml 所在的資料夾執行:
| 指令 |
用途 |
docker compose up -d |
背景啟動所有服務 |
docker compose up -d --build |
重新建置後啟動 |
docker compose ps |
查看服務狀態 |
docker compose logs -f web |
查看某個服務的日誌 |
docker compose exec web sh |
進入某個服務的容器 |
docker compose restart web |
重新啟動某個服務 |
docker compose pull |
下載最新的 Image |
docker compose down |
停止並刪除容器與網路 |
docker compose down -v |
同上,並刪除 Volume(資料會消失) |
docker compose config |
檢查設定檔並顯示變數替換後的結果 |
docker compose -f a.yaml -f b.yaml up -d |
合併多個設定檔,後面的覆蓋前面的 |
Volume 與 Network
| 指令 |
用途 |
docker volume create mydata |
建立 Volume |
docker volume ls |
列出 Volume |
docker volume inspect mydata |
查看 Volume 的詳細資訊 |
docker volume rm mydata |
刪除 Volume |
docker network create mynet |
建立網路 |
docker network ls |
列出網路 |
docker network inspect mynet |
查看哪些容器接在這個網路上 |
docker network rm mynet |
刪除網路 |
清理空間
| 指令 |
用途 |
docker system df |
查看 Docker 佔用多少空間 |
docker container prune |
刪除所有已停止的容器 |
docker image prune |
刪除沒有名稱的 Image |
docker builder prune |
刪除建置快取 |
docker system prune |
一次清除上面三項 |
docker system prune -a |
連沒在使用的 Image 都刪除(之後要重新下載) |
docker volume prune |
刪除沒在使用的 Volume(資料會消失,小心使用) |
多平台
# 在 ARM 電腦上執行 amd64 的 Image
docker run --platform linux/amd64 alpine uname -m
# 一次建置 amd64 與 arm64 兩種版本並上傳
docker buildx build --platform linux/amd64,linux/arm64 -t myname/myapp:1.0 --push .
Swarm
| 指令 |
用途 |
docker swarm init |
啟用 Swarm,這台成為 manager |
docker swarm join-token worker |
顯示其他電腦加入用的指令 |
docker node ls |
列出所有節點 |
docker service create --name web --replicas 3 -p 80:80 nginx |
建立服務 |
docker service ls |
列出服務 |
docker service ps web |
查看服務的容器跑在哪台電腦 |
docker service scale web=5 |
調整數量 |
docker service update --image nginx:1.29 web |
滾動更新 |
docker service rollback web |
退回上一版 |
docker stack deploy -c compose.yaml mysite |
用 Compose 檔部署 |
docker stack rm mysite |
移除整個 Stack |