docker-compose修改配置后实现开机自启过程
作者:龙仔725
本文详细介绍了使用systemd管理四个服务的步骤,包括创建统一启动脚本、赋予执行权限、创建systemd服务文件以及启用和测试服务,确保其在重启后开机自动启动,提供了一种稳定可控的方法

如图,我四个服务,都写了个简单的restart.sh的脚本。
要让这四个服务开机自动启动,最稳妥的方法是用 systemd 服务管理:
用 systemd 管理(稳定可控)
1. 创建统一的启动脚本
# 新建一个脚本目录 mkdir -p /opt/startup vim /opt/startup/start_all_containers.sh
写入以下内容:
#!/bin/bash # 等待网络和Docker服务就绪 sleep 10 # 启动RabbitMQ cd /data/rabbitmq ./restart.sh # 启动Redis cd /data/redis ./restart.sh # 启动windvdserver cd /data/windvdserver ./restart.sh # 启动windvdweb cd /data/windvdweb ./restart.sh
赋予执行权限:
chmod +x /opt/startup/start_all_containers.sh
2. 创建 systemd 服务文件
vim /etc/systemd/system/start-containers.service
写入以下内容:
[Unit] Description=Start all Docker containers at boot After=docker.service network-online.target Wants=docker.service network-online.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/opt/startup/start_all_containers.sh [Install] WantedBy=multi-user.target
3. 启用并测试服务
# 重载systemd配置 systemctl daemon-reload # 启用开机自启 systemctl enable start-containers.service # 测试运行 systemctl start start-containers.service # 查看状态 systemctl status start-containers.service

重启后开机验证没问题。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
