docker-compose docker 容器能够随系统启动也启动

liujie
liujie
发布于 2023-04-12 / 33 阅读
0
0

docker-compose docker 容器能够随系统启动也启动

如何让 docker-compose docker 容器能够随系统启动也启动,以ubuntu 系统用户为:lj ,docker-compose.yaml 文件位于:/home/lj/workspace/chatgpt-web/docker-compose ,请完善一下上述设置

  1. 在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
  1. 保存并关闭文件。

  2. 启用服务:

sudo systemctl enable chatgpt-web.service
  1. 启动服务:

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停止输出。

请注意,如果您的容器服务在启动时失败,您需要根据日志中的错误信息来诊断问题,找出问题所在并修复问题。


评论