当你的VPS(虚拟专用服务器)重启后,Docker服务和容器是否自动运行,取决于你是否配置了「自启动策略」——这不是一个固定答案,而是由系统设置决定的。
1. Docker服务:默认可能不会自动启动
Docker本质是一个系统服务(在Linux上叫docker daemon)。和MySQL、Nginx等服务一样,它不会“天生”随系统开机启动。如果你的VPS重启前没有配置Docker服务自启动,那么重启后Docker服务会处于停止状态,此时所有依赖Docker的容器也会熄火。
验证方法:VPS重启后,执行docker ps,如果提示“Cannot connect to the Docker daemon...”,说明Docker服务没启动。

2. 容器:即使Docker服务启动,容器也未必自动跑
假设你已经让Docker服务开机自启了,但容器是否跟着启动?还要看容器的「重启策略」:
- 如果你运行容器时没加任何重启参数(比如
docker run -d nginx),那么Docker服务启动后,这个容器还是会处于「停止」状态; - 只有当你给容器设置了重启策略(比如
--restart always),它才会在Docker服务启动后自动恢复运行。
3. 如何让Docker和容器「开机自启」?
(1)配置Docker服务自启动
在Linux系统(如Ubuntu、CentOS)中,用systemctl命令开启自启:
# 设置Docker服务开机自启
sudo systemctl enable docker
# 立即启动Docker服务(如果当前没启动)
sudo systemctl start docker
(2)配置容器重启策略
运行容器时,添加--restart参数指定策略:
always:无论容器因何原因停止(包括系统重启),都自动重启;unless-stopped:除非手动停止容器,否则一直自动重启(推荐);on-failure:仅当容器因错误退出(退出码非0)时重启。
示例:运行一个Nginx容器并配置自启:
docker run -d --name my-nginx --restart unless-stopped nginx
如果容器已经创建,也可以用docker update修改策略:
docker update --restart unless-stopped 容器名称/ID
4. 为什么要配置自启?
如果不配置,VPS重启后:
- Docker服务停了→所有容器都无法运行;
- 即使Docker服务启动,未配置重启策略的容器也会停止→你的网站、应用会宕机。
配置自启后,VPS重启无需手动干预,Docker和容器会自动恢复,保证服务连续性。
总结
VPS重启后,Docker是否需要手动重启?答案是:如果提前配置了服务自启和容器重启策略,就不需要;否则需要手动启动Docker服务和容器。
推荐做法:
- 务必开启Docker服务自启;
- 给所有重要容器设置
unless-stopped或always重启策略。
这样,即使VPS意外重启,你的Docker应用也能“自动复活”,避免服务中断~
(PS:验证配置是否生效的方法:重启VPS后,执行docker ps,如果能看到容器处于「Up」状态,说明配置成功!)