在
Docker Compose
中设置开机自启动可以通过创建一个
systemd
服务,确保 Docker 容器在系统启动时自动运行。以下是一个示例步骤:
步骤 1:编写
docker-compose.yml
文件
确保你的项目已经有一个
docker-compose.yml
文件,这是 Docker Compose 管理服务的定义文件。
version:'3'services:web:image: nginx:alpine
ports:-"80:80"db:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: example
步骤 2:创建一个 systemd 服务文件
- 在
/etc/systemd/system/
目录下创建一个新的服务文件,例如:docker-compose-app.service
sudonano /etc/systemd/system/docker-compose-app.service
- 添加以下内容到该文件:
[Unit]
Description=Docker Compose Application Service
Requires=docker.service
After=docker.service
[Service]
WorkingDirectory=/path/to/your/docker-compose/project
ExecStart=/usr/local/bin/docker-compose up -d
ExecStop=/usr/local/bin/docker-compose down
Restart=always
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
请确保
WorkingDirectory
指向你
docker-compose.yml
文件所在的目录,并且
ExecStart
和
ExecStop
指定了正确的
docker-compose
可执行文件的路径(可以通过
which docker-compose
命令确认路径)。
步骤 3:设置服务开机自启
- 重新加载
systemd
:
sudo systemctl daemon-reload
- 启用服务开机自启动:
sudo systemctl enable docker-compose-app
- 启动服务:
sudo systemctl start docker-compose-app
验证服务是否启动
使用以下命令检查服务的状态:
sudo systemctl status docker-compose-app
这样,当系统启动时,Docker Compose 定义的容器将自动启动并运行。
版权归原作者 天天进步2015 所有, 如有侵权,请联系我们删除。