如何让 docker-compose docker 容器能够随系统启动也启动,以ubuntu 系统用户为:lj ,docker-compose.yaml 文件位于:/home/lj/workspace/chatgpt-web/docker-compose ,请完善一下上述设置
在Ubuntu系统中创建一个systemd unit文件:
sudo nano /etc/systemd/system/chatgpt-web.service
在编辑器中输入以下内容:
[Unit]
Description=ChatGPT Web Service
Requires=docker.service
After=docker.service
[Service]
WorkingDirectory=/home/lj/workspace/chatgpt-web/docker-compose
ExecStart=/usr/local/bin/docker-compose up -d
# ExecStop 是在服务停止时执行的命令。在本例中,如果您使用 systemctl stop chatgpt-web 命令停止服务,则 ExecStop 中指定的 /usr/local/bin/docker-compose stop 命令将被执行
# 但却遇到了,含这段系统启动时,chatgpt-web 这个服务的容器会自动重启,不清楚原因,暂不深究
ExecStop=/usr/local/bin/docker-compose down
Restart=always
[Install]
WantedBy=multi-user.target
保存并关闭文件。
启用服务:
sudo systemctl enable chatgpt-web.service
启动服务:
sudo systemctl start chatgpt-web.service
现在,您的Docker容器应该已经在系统启动时自动启动了。如果需要停止Docker容器,可以使用以下命令:
sudo systemctl stop chatgpt-web.service
要禁用Docker容器的自动启动,可以使用以下命令:
sudo systemctl disable chatgpt-web.service
注意:在编写上述unit文件时,请确保已正确安装docker和docker-compose,并根据实际情况调整文件中的路径和服务名称。且配置中如果有volume映射,不要使用相对路径。
sudo systemctl start
命令启动容器服务失败,那么可以通过以下命令查看启动日志:
sudo journalctl -u [service_name] -b
其中,[service_name]
是要查看日志的容器服务名称。-u
参数指定查看系统日志中与指定服务相关的日志,-b
参数指定查看系统启动以来的日志。
如果要查看容器服务的所有日志,可以使用以下命令:
sudo journalctl -u [service_name]
如果您想要在启动服务时自动跟踪日志输出,可以使用以下命令:
sudo journalctl -u [service_name] -f
此命令将自动跟踪服务启动的日志输出,直到您按下Ctrl+C
停止输出。
请注意,如果您的容器服务在启动时失败,您需要根据日志中的错误信息来诊断问题,找出问题所在并修复问题。