首先:确保Docker服务配置为开机自启,这样当虚拟机启动时,Docker也会启动,并按照设定的重启策略自动启动相关容器。
sudo systemctl enable docker
创建容器时:
当你使用docker run
命令启动容器时,可以添加--restart
标志并指定一个重启策略。对于希望容器随系统启动而自动启动的需求,推荐使用unless-stopped。
以nacos为例:
docker run --name=nacos -e MODE=standalone --restart unless-stopped -d nacos/nacos-server
加入--restart unless-stopped
设置了重启策略为除非手动停止,否则总是重启。
已存在容器时:
如果您已经有一个正在运行或已停止的Nacos容器,并希望为其设置或更改重启策略,可以使用docker update
命令:
docker update --restart unless-stopped nacos
实现虚拟机重启后自动恢复容器服务及其所需端口的使用,可以避免或解决以下几个常见问题:
避免手动启动服务:如果没有配置自动重启策略,每当虚拟机重启后,您需要手动启动所有容器。这不仅耗时,而且容易出错,特别是在有多个容器和服务需要管理的情况下
确保关键服务始终在线:对于一些对业务连续性要求较高的应用(如数据库、消息队列等),确保这些服务能够随系统启动而自动启动是至关重要的。这样可以保证即使发生意外重启,也能尽快恢复正常运行。
事实上,有时候当你选择启动一些容器时,例如nacos,如果你直接使用docker start nacos,那么你可能会碰到报错:NO Datasource set.你可以通过docker restart naocs对容器进行重启来恢复状态,但是这太麻烦了,直接实现虚拟机重启后自动恢复容器服务是如此的简单而方便。