1. 需求

有台不是很重要的服务器上面部署了几个docker,由于没有ups经常会断电,服务器已经设置了自动来电启动.但有一些已经部署且正常运行的容器无法自动启动.

2. 实现

2.1 Docker服务的自启动

systemctl is-enabled docker
如果提示enabled,说明已经是开启自启动了

如果是disabled,那么就执行以下命令,启动并将docker服务设置为开机自启动

systemctl enable --now docker

2.2 容器设置成自启动

2.2.1 方法1

  1. 获取容器id或名字
    这里的0af13655f6d6就是docker的id
    mysql就是这个容器的名字
root@Ubuntu-1:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
0af13655f6d6        mysql:5.7.34        "docker-entrypoint.s…"   16 hours ago        Exited (0) 10 minutes ago                       mysql
  1. update
    这里用容器名字或者容器id都可以
docker update 0af13655f6d6 --restart=always

此时容器已经会随着docker服务自己启动了,可以重启下docker service,此时容器就自己起来了

root@Ubuntu-1:~# systemctl restart docker
root@Ubuntu-1:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
0af13655f6d6        mysql:5.7.34        "docker-entrypoint.s…"   16 hours ago        Up 2 seconds        0.0.0.0:3306->3306/tcp, 33060/tcp   mysql

2. 方法2

这个方法稍微麻烦一些,但更直观.如果需要修改其他参数也不用特意去记具体参数.
不过话说回来,如果不记得参数看到这个json应该也是一脸懵的…

vi /var/lib/docker/containers/0af13655f6d67350957e8825fa7631db6b5b882856765cc33c3be453ef0cbb86/hostconfig.json
修改no为always即可

在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐