当前位置: 首页 > news >正文

Docker 容器自启动

Docker设置容器开机自启动的方法主要有以下几种:

  1. 使用–restart参数
    在启动容器时,可以通过docker run命令的–restart参数来指定容器的重启策略,从而实现容器的开机自启动。–restart参数可以接受以下几个值:

no:不自动重启容器(默认值)。
always:容器退出时总是重启。
on-failure[:max-retries]:容器以非零状态码退出时重启,可以指定最大重试次数(如果不指定,则无限重试)。
unless-stopped:无论退出状态如何,总是重启容器,但当容器被手动停止时不重启。
例如,使用以下命令启动一个总是自动重启的Nginx容器:
bash
docker run -d --restart always nginx
如果容器已经运行,但之前没有设置自动重启,可以使用docker update命令来更新重启策略:
bash
docker update --restart=always 容器ID或名称

  1. 将容器作为systemd服务管理
    另一种方法是将Docker容器作为systemd服务来管理,systemd是现代Linux系统的标准初始化系统。通过创建一个服务单元文件(.service),可以定义容器的启动参数和重启策略,并将其设置为开机自启动。

创建一个服务单元文件,例如mycontainer.service,文件内容如下:

[Unit]  
Description=My Container Service  
Requires=docker.service  
After=docker.service  [Service]  
Restart=always  
ExecStart=/usr/bin/docker start -a 容器ID或名称  [Install]  
WantedBy=multi-user.target

注意:在ExecStart中,如果容器已经停止,使用docker start来启动;如果容器从未运行过,应使用docker run(但这里为了简化,通常假设容器已经创建)。

将服务单元文件保存到/etc/systemd/system/目录下。
cp mycontainer.service /etc/systemd/system/

启用并启动服务:
systemctl enable mycontainer.service
systemctl start mycontainer.service
这样,容器就会在系统启动时自动启动,并且会根据Restart=always策略在退出时自动重启。

注意事项
确保Docker服务本身已经设置为开机自启动,因为容器作为Docker的子进程,需要Docker服务运行才能启动。
如果容器依赖于其他服务(如数据库、网络等),请确保这些依赖服务也在容器启动之前启动。
考虑到系统资源限制,请确保有足够的资源来启动所有设置为自动启动的容器。
定期检查并更新容器镜像和配置,以确保安全性和功能性。
通过上述方法,可以灵活地设置Docker容器在宿主机开机时自动启动,并根据需要进行调整和优化。


http://www.mrgr.cn/news/8201.html

相关文章:

  • Java学习_17_集合综合练习(待更新)
  • Maven高级使用指南
  • 【冒泡排序算法】输入n个数进行排序
  • 搭建 PXE 远程安装服务器和设置 Kickstart 无人值守安装
  • XGBoost中正则化的9个超参数
  • K8S对接Ceph分部署存储
  • 关于Java中@Component的使用中出现@Autowired为NULL的问题
  • AI视频创作应用
  • Springboot-发送短信有哪些方法?
  • 常见的视频监控RTSP RTMP 流媒体协议及开发测试工具
  • 神经网络微调技术全解(01)-不同的微调方法如PEFT、SFT、LoRa、QLoRa等,旨在解决不同的问题和挑战
  • 使用命令模式实现撤销与重做功能的完整指南
  • 富格林:全面布局实现安全出金
  • 使用一致性哈希解决哈希分片负载均衡的扩展性问题
  • Java面向对象之类加载与static关键字
  • 【Python学习手册(第四版)】学习笔记20.2-迭代和解析(二)-迭代解析、迭代方法的计时比较、函数陷阱
  • 快速排序和归并排序模板(Java实现)
  • 工厂模式和策略模式区别以及使用
  • PCB设计(立创EDA)
  • vue的事件修饰符、数组变化侦测、计算属性、class绑定、style绑定