安装

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"

解决方案

  1. ‌自动化清理镜像(推荐)‌
    ‌清理所有悬虚镜像‌:
docker image prune -f

‌清理未被容器引用的镜像‌(包括非悬虚镜像):

docker image prune -a -f
  1. ‌优化 docker-compose down 行为‌
    ‌删除镜像‌(–rmi 参数):
docker-compose down --rmi all  # 删除所有相关镜像
docker-compose down --rmi local  # 仅删除 compose 文件中定义的镜像

‌删除数据卷‌(-v 参数):

docker-compose down -v
  1. ‌重构镜像命名策略‌
    在 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博客,转载请注明出处。