新
| | |
Docker 常用命令備忘
映像檔管理 (Images)
# 從倉庫拉取映像檔
docker pull [IMAGE_NAME]:[TAG]
# 查看本地映像檔列表
docker images
# 刪除本地映像檔
docker rmi [IMAGE_ID/NAME]
# 映像檔過濾查找 (Images Filter)
# 根據虛無映像檔過濾 (dangling=true or false)
docker images --filter "dangling=true"
# 根據映像檔建立時間過濾 (before, since)
docker images --filter "before=ubuntu:latest"
docker images --filter "since=mysql:5.7"
# 根據參考名稱過濾
docker images --filter "reference=nginx:*"
# 建構映像檔 (在 Dockerfile 所在目錄下)
docker build -t [IMAGE_NAME]:[TAG] .
# 強制刪除所有未使用映像檔 (虛無映像檔)
docker image prune -f
容器生命週期 (Containers)
# 運行容器
# -d 後台運行, -p 端口映射 宿主:容器, --name 指定名稱
docker run -d -p 8080:80 --name my-container [IMAGE_NAME]
# 查看正在運行的容器
docker ps
# 查看所有容器 (包括已停止的)
docker ps -a
# 停止容器
docker stop [CONTAINER_ID/NAME]
# 啟動已停止的容器
docker start [CONTAINER_ID/NAME]
# 重啟容器
docker restart [CONTAINER_ID/NAME]
# 刪除已停止的容器
docker rm [CONTAINER_ID/NAME]
# 強制停止並刪除正在運行的容器
docker rm -f [CONTAINER_ID/NAME]
# 清理所有已停止的容器
docker container prune -f
容器內交互與調試
# 進入正在運行的容器終端
docker exec -it [CONTAINER_ID/NAME] /bin/bash
# 或者 (如果不支持 bash)
docker exec -it [CONTAINER_ID/NAME] /bin/sh
# 查看容器日誌
docker logs -f [CONTAINER_ID/NAME]
# 查看最近 100 行日誌
docker logs --tail 100 -f [CONTAINER_ID/NAME]
# 查看容器詳細資訊 (配置、網絡等)
docker inspect [CONTAINER_ID/NAME]
# 查看容器內運行的程序
docker top [CONTAINER_ID/NAME]
# 查看容器資源占用 (CPU/內存)
docker stats [CONTAINER_ID/NAME]
# 修改容器名稱
docker rename [OLD_NAME] [NEW_NAME]
# 即時查看容器內的事件流
docker events
映像檔進階操作
# 查看映像檔層級結構或歷史
docker history [IMAGE_NAME]
# 保存映像檔為 tar 歸檔文件
docker save -o my-image.tar [IMAGE_NAME]
# 從 tar 歸檔文件加載映像檔
docker load -i my-image.tar
# 將容器保存為映像檔 (慎用,建議使用 Dockerfile)
docker commit [CONTAINER_ID] [NEW_IMAGE_NAME]
系統清理
# 查看 Docker 磁碟使用情況
docker system df
# 一鍵清理所有未使用的資源 (映像檔、容器、網絡)
# 注意:這會刪除所有停止的容器和未被使用的映像檔
docker system prune -a --volumes
文件傳輸
# 從宿主機拷貝到容器
docker cp [LOCAL_PATH] [CONTAINER_ID]:[CONTAINER_PATH]
# 從容器拷貝到宿主機
docker cp [CONTAINER_ID]:[CONTAINER_PATH] [LOCAL_PATH]
網絡管理
# 查看網絡列表
docker network ls
# 建立網絡
docker network create [NETWORK_NAME]
# 查看網絡詳細細節
docker network inspect [NETWORK_NAME]
資料卷管理 (Volumes)
# 查看資料卷列表
docker volume ls
# 建立資料卷
docker volume create [VOLUME_NAME]
# 清理未使用的匿名卷
docker volume prune -f
Docker Compose (多容器編排)
# 後台啟動所有服務
docker-compose up -d
# 停止並移除所有容器、網絡、映像檔和卷
docker-compose down
# 查看服務日誌
docker-compose logs -f [SERVICE_NAME]
# 建構或重新建構服務
docker-compose build