Docker 常用指令教學

在 Docker 的世界裡,大部分的操作都是透過指令行 (CLI) 完成的。雖然 Docker Desktop 有圖形介面,但熟練指令能讓你在自動化部署與伺服器維護時更有效率。

本篇彙整了開發中最常用的 Docker 指令。

容器生命週期管理

docker run:建立並啟動容器

這是最常用的指令。它會先在本地尋找映像檔,找不到就從 Docker Hub 下載,然後建立並執行容器。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

# 常用參數:
# -d: 背景執行
# -p: 埠號對應 (主機:容器)
# -it: 互動模式 (搭配終端機)
# --name: 幫容器取名
# --rm: 容器停止後自動刪除
# -v: 掛載資料卷 (Volume)

# 範例:啟動一個背景執行的 Nginx
docker run -d -p 8080:80 --name my-nginx nginx

docker stop / start / restart:控制運作狀態

# 停止運作中的容器
docker stop my-nginx

# 啟動已停止的容器
docker start my-nginx

# 重啟容器
docker restart my-nginx

docker rm:刪除容器

# 刪除已停止的容器
docker rm my-nginx

# 強制刪除運作中的容器
docker rm -f my-nginx

容器查看與偵錯

docker ps:列出容器

# 查看正在執行的容器
docker ps

# 查看所有容器(包含已停止的)
docker ps -a

docker logs:查看輸出記錄

當程式報錯或沒反應時,這就是你最好的朋友。

# 查看容器日誌
docker logs my-nginx

# 即時追蹤日誌更新 (-f)
docker logs -f my-nginx

docker exec:在運作中的容器內執行指令

這通常用於「進入」容器內部進行操作。

# 進入容器的 Bash 終端機
docker exec -it my-nginx bash

docker inspect:查看詳細設定

回傳一個包含所有配置資訊(如 IP、掛載點)的 JSON。

docker inspect my-nginx

映像檔與系統清理

docker images:列出本地映像檔

docker images

docker rmi:刪除映像檔

docker rmi nginx

docker system prune:一鍵大掃除

清理所有:已停止的容器、未使用的網路、懸空 (dangling) 的映像檔。

docker system prune

# 如果連沒在使用的映像檔都要刪除
docker system prune -a

指令速查表 (Cheat Sheet)

功能指令
啟動新容器docker run -d -p 80:80 nginx
查看運作中docker ps
進入容器docker exec -it [ID/Name] bash
停止容器docker stop [ID/Name]
查看日誌docker logs -f [ID/Name]
複製檔案docker cp [主機路徑] [容器ID:路徑]
查看資源佔用docker stats
大多數指令都可以使用容器的 ID名稱 (Name)。ID 不需要輸入完整的長字串,通常輸入前 3-4 碼只要能區別唯一的容器即可。