文章内容
2025/11/11 23:38:11,作 者: 黄兵
Docker 容器开机自动启动
Docker 容器默认不会在系统重启后自动启动。需要添加重启策略。
解决方案
方案 1:为现有容器添加重启策略(推荐)
# 更新现有容器的重启策略 docker update --restart=always nginx-quic # 启动容器 docker start nginx-quic # 检查状态 docker ps
方案 2:删除并重新创建容器(带自动重启)
# 删除旧容器 docker rm nginx-quic # 重新创建,添加 --restart=always docker run -d --name nginx-quic \ --restart=always \ -p 80:80 -p 443:443/tcp -p 443:443/udp \ -v /root/nginx-quic/conf:/etc/nginx/conf.d:ro \ -v /etc/letsencrypt/live:/etc/letsencrypt/live:ro \ -v /etc/letsencrypt/archive:/etc/letsencrypt/archive:ro \ -v /root/nginx-quic/html:/usr/share/nginx/html:ro \ macbre/nginx-http3:latest # 检查状态 docker ps # 查看日志 docker logs nginx-quic
重启策略说明
--restart=no:默认值,容器退出后不重启--restart=always:容器退出后总是重启,包括系统重启后--restart=unless-stopped:除非手动停止,否则总是重启(推荐)--restart=on-failure[:max-retries]:仅在容器非正常退出时重启
推荐使用 unless-stopped
docker update --restart=unless-stopped nginx-quic docker start nginx-quic
这样的好处是:
- 系统重启后自动启动
- 但如果你手动执行
docker stop nginx-quic,它不会自动重启 - 比
always更灵活
验证重启策略
# 查看容器的重启策略
docker inspect nginx-quic | grep -A 3 "RestartPolicy"
# 应该看到类似输出:
# "RestartPolicy": {
# "Name": "unless-stopped",
# "MaximumRetryCount": 0
# },测试自动重启
# 测试容器重启 docker restart nginx-quic # 等待几秒 sleep 3 # 检查状态(应该是 Up) docker ps | grep nginx-quic
现在系统重启后,nginx-quic 容器会自动启动。
评论列表