Docker 容器管理指南 🐳 📋 目录导航 🔍 容器查看命令
Docker 容器管理指南 🐳
📋 目录导航
🔍 容器查看命令
1. 👀 查看运行中的容器 ID 和名称
1
|
docker ps --format '{{.ID}}: {{.Names}}'
|
2. 📦 查看已停止的容器 ID 和名称
1
|
docker ps -a --filter "status=exited" --format "{{.ID}} {{.Names}}"
|
3. 📊 查看所有容器(简洁格式)
1
|
docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}"
|
4. 🔍 查看容器详细信息
1
2
3
4
5
|
# 查看特定容器信息
docker inspect mytest
# 查看容器资源使用情况
docker stats mytest
|
⚡ 容器生命周期管理
1. ⏹️ 停止容器
1
2
3
4
5
|
# 停止指定容器
docker stop mytest
# 优雅停止(给予一定时间完成处理)
docker stop -t 30 mytest
|
2. ▶️ 启动/重启容器
1
2
3
4
5
6
7
8
|
# 启动已停止的容器
docker start mytest
# 重启容器
docker restart mytest
# 强制重启容器
docker restart -t 0 mytest
|
3. ⏸️ 暂停/恢复容器
1
2
3
4
5
|
# 暂停容器运行
docker pause mytest
# 恢复暂停的容器
docker unpause mytest
|
📋 容器日志与诊断
1. 📝 查看容器日志
1
2
3
4
5
6
7
8
9
10
11
|
# 查看最新日志
docker logs mytest
# 实时跟踪日志输出
docker logs -f mytest
# 查看最后N行日志
docker logs --tail 100 mytest
# 查看带时间戳的日志
docker logs -t mytest
|
2. 🔍 进入容器内部
1
2
3
4
5
6
7
8
|
# 使用 bash 进入容器
docker exec -it mytest bash
# 使用 sh 进入容器
docker exec -it mytest sh
# 在容器中执行单条命令
docker exec mytest ls -la /app
|
💡 提示:使用 Ctrl+D
或输入 exit
退出容器
🧹 批量容器管理
1. ⏹️ 停止所有运行中的容器
1
|
docker stop $(docker ps -q)
|
2. 🗑️ 删除所有已停止的容器
1
2
3
4
5
|
# 安全删除(需要确认)
docker container prune
# 强制删除(无需确认)
docker container prune -f
|
3. 🔧 删除特定容器
1
2
3
4
5
6
7
8
|
# 删除已停止的容器
docker rm mytest
# 强制删除运行中的容器
docker rm -f mytest
# 删除容器并同时删除关联的匿名卷
docker rm -v mytest
|
4. 🧽 清理所有无用资源
1
2
3
4
5
|
# 删除所有停止的容器、未使用的网络、悬空镜像
docker system prune
# 包括未使用的卷
docker system prune --volumes
|
🚀 高级容器操作
1. 📊 容器资源限制
1
2
3
4
5
6
7
8
|
# 查看容器资源使用
docker stats
# 限制容器内存使用
docker run -d --name myapp --memory=512m nginx
# 限制CPU使用
docker run -d --name myapp --cpus=1.5 nginx
|
2. 🌐 容器网络管理
1
2
3
4
5
6
7
8
|
# 查看容器网络信息
docker network ls
# 查看容器端口映射
docker port mytest
# 创建自定义网络
docker network create my-network
|
3. 📁 容器文件操作
1
2
3
4
5
|
# 从容器复制文件到主机
docker cp mytest:/app/config.conf ./local-config.conf
# 从主机复制文件到容器
docker cp ./local-file.txt mytest:/app/file.txt
|
🛠️ 实用技巧和最佳实践
1. ❤️ 容器健康检查
1
2
3
4
5
6
7
8
|
# 查看容器健康状态
docker inspect --format='{{json .State.Health}}' mytest
# 运行带有健康检查的容器
docker run -d --name healthy-app \
--health-cmd="curl -f http://localhost || exit 1" \
--health-interval=30s \
nginx
|
2. 📈 容器资源监控
1
2
3
4
5
|
# 实时监控容器资源
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}"
# 查看容器详细信息
docker inspect mytest | grep -E '(IPAddress|MacAddress|Gateway)'
|
3. 💾 容器备份与迁移
1
2
3
4
5
6
7
8
|
# 将容器提交为镜像
docker commit mytest my-backup-image
# 导出容器文件系统
docker export mytest > mytest-container.tar
# 导入容器文件系统
docker import mytest-container.tar my-imported-image
|
⚠️ 安全注意事项
-
🛡️ 谨慎使用特权容器
1
2
|
# 避免不必要的特权模式
# docker run --privileged myapp # 谨慎使用!
|
-
🔐 限制容器权限
1
2
|
# 使用非root用户运行容器
docker run -d --user 1000:1000 myapp
|
-
🔄 定期更新容器镜像
1
2
3
4
|
# 拉取最新镜像并重建容器
docker pull nginx:latest
docker stop myapp && docker rm myapp
docker run -d --name myapp nginx:latest
|
💡 常用命令组合
🔄 快速重启容器
1
|
docker restart mytest && docker logs -f mytest
|
📦 批量操作多个容器
1
2
|
# 批量启动匹配名称的容器
docker ps -a --filter "name=app" --format "{{.Names}}" | xargs -I {} docker start {}
|
📊 容器状态监控脚本
1
2
3
|
#!/bin/bash
# 监控容器状态
watch -n 5 'docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"'
|
通过掌握这些 Docker 容器管理命令,您将能够更高效地管理和维护容器化应用!🐳🚀