docker配置开机启动某个容器

docker配置开机启动某个容器

方法一:在compose file中的应用加入restart: always层,但是它并不能保证开启起动某个容器,我的测试是,如果容器在启动状态,重启主机后它会启动,如果容器是关闭状态的话,主机重启不会启动容器。PS:网上说这种方法在某些情况下有限制,但并没说什么情况,个人感觉这个方法不错。

方法二:使用systemd来启动,这种方法要注意type=onshot,其它类型的启动方式会失败,因为我们只是使用docker的一条命令来启动容器,该命令并不会驻留在系统当中,也不会给系统反馈什么信息。这就是用其它启动类型都会失败的原因。

以root用户登录vi /lib/systemd/system/docker-app.service,编辑完成后systemctl enable docker-app.service

[Unit]
Description=Docker Compose Application Service
Requires=docker.service
After=docker.service

[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/执行命令的工作目录/
ExecStart=/usr/bin/docker compose -f xxxx.yaml up -d
ExecStop=/usr/bin/docker compose -f xxxx.yaml down -v
TimoutStartSec=0

[Install]
WantedBy=multi-user.target

网上有人说第二种比较稳定,但我个人感觉还是第一种好。

Comments are closed.