很多用VPS部署Docker应用的朋友都会遇到一个困惑:VPS重启后,之前跑的Docker容器怎么突然没了?到底要不要手动重启Docker?今天就把这个问题讲透,让你再也不用踩坑。
先搞懂两个核心概念
Docker的运行分为两层:
- Docker服务(daemon):后台运行的管理程序,负责启动、停止、管理所有容器;
- Docker容器:基于镜像运行的应用实例,依赖Docker服务才能存活。
VPS重启后,这两层的状态决定了你的应用是否能自动恢复。

问题1:Docker服务会自动启动吗?
默认情况下,Linux系统(比如Ubuntu、CentOS)安装Docker后,会自动将Docker服务注册为开机自启(通过systemd管理)。但也有例外:
- 如果是手动编译安装的Docker,可能没设置自启;
- 之前手动关闭过自启(比如执行过
systemctl disable docker)。
验证方法:VPS重启后,执行systemctl status docker,如果显示“active (running)”,说明服务已自动启动;如果是“inactive”,则需要手动启动(systemctl start docker),或者设置开机自启:
sudo systemctl enable docker # 永久开启开机自启
问题2:容器会自动重启吗?
即使Docker服务自动启动了,容器默认也不会自动重启!因为容器的重启策略默认是no(即:停止后不自动重启)。
这就是很多人VPS重启后容器消失的原因——服务起来了,但容器没起来。
解决办法:给容器设置自动重启策略。有三种常用策略:
always:只要容器停止(不管正常还是异常),就自动重启(除非手动stop);on-failure:只有容器异常退出(退出码非0)时才重启;unless-stopped:除非手动stop,否则总是重启(即使容器正常退出)。
操作方式:
- 新建容器时设置:
docker run -d --restart always nginx # 以nginx为例,设置always重启 - 已有容器修改:
docker update --restart unless-stopped 容器ID/名称
总结:不用手动重启,但要提前配置
VPS重启后,不需要手动重启Docker,但必须做好两件事:
- 确保Docker服务开机自启;
- 给所有需要持久运行的容器设置自动重启策略。
这样VPS重启后,Docker服务会自动启动,容器也会跟着恢复运行,完全不用手动干预。
下次遇到容器消失的问题,先检查这两个设置,99%的情况都能解决!
你学会了吗?欢迎在评论区分享你的Docker使用经验~
(字数:约600字)
文章版权声明:除非注明,否则均为婉秋博客原创文章,转载或复制请以超链接形式并注明出处。