安装
1.安装yum源
(方法一)使用 yum-config-manager 工具动态地向 /etc/yum.repos.d/ 目录中添加一个指向指定 URL 的 .repo 配置文件,从而添加了 Docker CE 仓库。
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y*
(方法二)使用 wget 下载 http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 文件,并将其保存到 /etc/yum.repos.d/ 目录中,手动添加了 Docker CE 仓库的配置文件
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y*/ yum install docker-ce
# 停止并删除所有容器和网络
docker-compose down
# 停止并删除所有容器、网络和数据卷
docker-compose down --volumes
# 构建所有服务的镜像
docker-compose build
# 构建指定服务的镜像
docker-compose build web
# 构建所有服务的镜像,不使用缓存
docker-compose build --no-cache
# 查看所有服务的容器状态
docker-compose ps
# 查看指定服务的容器状态
docker-compose ps web
# 查看所有服务的日志
docker-compose logs
# 实时跟踪指定服务的日志
docker-compose logs -f web
# 查看指定服务的最后 50 行日志
docker-compose logs --tail 50 web
# 重启所有服务
docker-compose restart
# 重启指定服务
docker-compose restart web
# 重启指定服务,设置停止等待时间为 20 秒
docker-compose restart -t 20 web
# 停止所有服务
docker-compose stop
# 停止指定服务
docker-compose stop web
# 停止指定服务,设置等待时间为 20 秒
docker-compose stop -t 20 web
# 启动所有已停止的服务
docker-compose start
# 启动指定已停止的服务
docker-compose start web
#验证配置文件
docker-compose config
# 在指定服务的容器中执行命令
docker-compose exec web bash
# -d: 分离模式运行 -T: 禁用伪 TTY 分配 (例如用于管道)
# -u, --user <user>: 指定用户
docker-compose exec <service_name> bash
docker-compose exec -T db psql -U user -d dbname
资源占用过大问题
查看悬虚镜像
docker images -f "dangling=true"
查看停止的容器:
docker ps -a -f "status=exited"
解决方案
- 自动化清理镜像(推荐)
清理所有悬虚镜像:
docker image prune -f
清理未被容器引用的镜像(包括非悬虚镜像):
docker image prune -a -f
- 优化 docker-compose down 行为
删除镜像(–rmi 参数):
docker-compose down --rmi all # 删除所有相关镜像
docker-compose down --rmi local # 仅删除 compose 文件中定义的镜像
删除数据卷(-v 参数):
docker-compose down -v
- 重构镜像命名策略
在 docker-compose.yml 中为镜像添加唯一标签(如时间戳、Git Commit Hash),避免重复构建覆盖:
services:
app:
build: .
image: myapp:${TAG:-latest} # 通过环境变量动态设置标签
TAG=$(date +%s) docker-compose build # 示例:使用时间戳作为标签
长期维护建议
脚本化清理
添加定时任务(Cron)定期清理资源:
# 每天凌晨清理一次
0 0 * * * docker system prune -af --filter "until=24h"
监控工具介入
使用 cAdvisor + Grafana 监控 Docker 资源使用,及时预警。
如何创建定时任务
方法一:直接编辑Crontab文件(推荐)
打开当前用户的Crontab编辑器
crontab -e
在文件末尾添加以下行
0 0 * * * docker system prune -af --filter "until=24h"
保存并退出
若使用nano编辑器:按 Ctrl+O 保存 → Enter 确认 → Ctrl+X 退出。
若使用vim:按 :wq 保存退出。
方法二:通过脚本文件添加
创建清理脚本
echo 'docker system prune -af --filter "until=24h"' > ~/docker_clean.sh
chmod +x ~/docker_clean.sh
添加定时任务
(crontab -l 2>/dev/null; echo "0 0 * * * $HOME/docker_clean.sh") | crontab -
验证定时任务
查看现有任务
crontab -l
检查执行日志
tail -f /var/log/syslog | grep CRON
以上涵盖docker-compose常用命令
以上来自Juleon博客,转载请注明出处。
热门推荐
JavaScript通过Node.js进行后端开发指南
2025-06-14 08:54docker-compose常用命令,docker资源占用过高处理
2025-04-28 12:26MongoDB数据库该如何备份,又如何去恢复呢?mongodump与mongorestore学习记录拿走!
2025-05-15 10:18Mac重装,前端安装必备软件与工具
2025-05-15 06:15css页面布局技巧之网格布局-display:grid
2025-05-13 03:39debounce(防抖动函数)
2025-04-29 01:24
评论 (3)