一、容器生命周期管理
1. 創建并運行容器
docker run [選項] 鏡像名 [命令]
常用選項:
-d
:后臺運行(detached)-it
:交互式終端(如?-it ubuntu bash
)--name
:指定容器名稱-p 主機端口:容器端口
:端口映射(如?-p 80:8080
)-v 主機路徑:容器路徑
:掛載數據卷-e 環境變量
:設置環境變量(如?-e MYSQL_ROOT_PASSWORD=123
)--restart=always
:容器崩潰自動重啟
docker restart 容器名/ID # 重啟容器
使用場景:
快速啟動服務(如 Nginx、MySQL)
運行一次性任務(如?
docker run alpine echo "Hello"
)
2. 啟動/停止/重啟容器
docker start 容器名/ID # 啟動已停止的容器
docker stop 容器名/ID # 優雅停止
docker kill 容器名/ID # 強制終止
3. 刪除容器
docker rm 容器名/ID # 刪除已停止的容器
docker rm -f 容器名/ID # 強制刪除(包括運行中的容器)
docker container prune # 刪除所有已停止的容器
二、鏡像管理
1. 拉取/推送鏡像
docker pull 鏡像名:標簽 # 拉取鏡像(如 `docker pull nginx:latest`)
docker push 鏡像名:標簽 ? ? ? # 推送鏡像到倉庫(需先登錄)
2. 構建鏡像
docker build -t 鏡像名:標簽 Dockerfile路徑
使用場景:
自定義鏡像(如基于?
Dockerfile
?構建應用)
3. 刪除鏡像
docker rmi 鏡像名/ID # 刪除鏡像
docker image prune -a # 刪除所有未被使用的鏡像
三、查看信息
1. 查看容器狀態
docker ps # 查看運行中的容器
docker ps -a # 查看所有容器(包括已停止的)
docker stats # 實時監控容器資源占用(CPU/內存)
2. 查看鏡像
docker images # 列出本地鏡像
docker history 鏡像名 # 查看鏡像構建歷史
3. 查看日志
docker logs 容器名/ID # 查看容器日志
docker logs -f 容器名/ID # 實時跟蹤日志(類似 `tail -f`)
四、數據管理
1. 數據卷(Volumes)
docker volume create 卷名 # 創建數據卷
docker volume ls # 列出所有卷
docker volume inspect 卷名 # 查看卷詳情
使用場景:
持久化數據庫數據(如 MySQL)
共享數據 between containers
2. 掛載主機目錄
docker run -v /主機路徑:/容器路徑 鏡像名
示例:
docker run -v /home/user/data:/app/data nginx
五、網絡管理
1. 查看網絡
docker network ls # 列出所有網絡
docker network inspect 網絡名 # 查看網絡詳情
2. 創建自定義網絡
docker network create 網絡名
使用場景:
容器間通信(如微服務架構)
3. 連接容器到網絡
docker network connect 網絡名 容器名
六、批量操作
1. 停止所有容器
docker stop $(docker ps -aq)
2. 刪除所有容器
docker rm -f $(docker ps -aq)
3. 清理無用資源
docker system prune -a # 刪除所有未使用的鏡像、容器、網絡
七、使用場景速查表
場景 | 命令示例 |
---|---|
運行 Web 服務 | docker run -d -p 80:80 --name nginx nginx |
調試容器 | docker exec -it 容器名 bash |
備份數據庫數據 | docker run --volumes-from mysql -v /backup:/backup alpine tar cvf /backup/mysql.tar /var/lib/mysql |
構建自定義鏡像 | docker build -t my-app:1.0 . |
容器互聯 | docker run --name app --network my-net -d my-app |
查看容器資源占用 | docker stats |
八、注意事項
權限問題:某些操作需?
sudo
?或用戶加入?docker
?組。生產環境安全:
避免使用?
-privileged
。限制容器資源(
--memory
、--cpus
)。
數據持久化:重要數據務必掛載卷或綁定主機目錄。
掌握這些命令后,可以覆蓋 90% 的日常 Docker 使用場景!