跳轉至

建立 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