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 碼只要能區別唯一的容器即可。