0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Docker容器实现开机自动启动策略

jf_Ufm3lVrj 来源:凌顺实验室 2024-03-11 10:33 次阅读

有时候,需要主机启动的时候,即自动启动容器。

要实现这个功能非常简单。

情况一:启动容器前的指令设置restart选项

在启动容器的时候,添加--restart=always即可,例如:

docker run --restart=always docker_id

情况二:已启动容器通过 docker update 对设置 restart 选项

如果,已经启动了容器,那么通过docker update对容器设置进行更新,一样可以让运行中的容器设置自动启动。

首先, 通过docker ps查看,运行的docker ID

docker ps

然后,使用 docker update,例如:

docker update --restart=always docker_id

停止容器自动启动

又时候我们不需要容器自动启动了,可以通过docker update对容器设置进行更新

首先, 通过docker ps查看,运行的docker ID

docker ps

然后,使用 docker update,例如:

docker update --restart=no

Docker支持以下重启策略 restart的选项

策略结果

no容器退出时不自动重启。这是默认的。

on-failure[:max-retries]只有在容器以非零退出状态退出时才重新启动。可以选择限制Docker守护进程尝试重启的次数。例如 --restart=3 ,表示重启3次后不再重启。

always始终重启容器,不管退出状态如何。当你指定always时,Docker守护进程将无限期地尝试重新启动容器。容器也将总是在守护进程启动时启动,无论容器的当前状态如何。

unless-stopped无论退出状态如何,总是重启容器,包括在守护进程启动时,除非容器在Docker守护进程停止之前就已经进入了停止状态。

请注意,这些设置会在Docker守护进程的层面上生效,所以确保Docker守护进程本身设置为在系统启动时启动。这通常是通过系统的服务管理(如systemd)来配置的。

注意事项

依赖服务:如果你的容器依赖于其他服务(例如数据库或其他容器),你需要确保这些服务在你的容器启动之前就已经可用。这可以通过编排工具如Docker Compose来管理,或者通过编写自定义的启动脚本来控制服务启动顺序。

资源限制:确保你的系统有足够的资源来启动所有设置为自动启动的容器。如果资源(如内存或CPU)不足,可能会导致容器启动失败。

日志管理:自动启动的容器可能会产生大量日志。配置适当的日志轮转策略,以避免日志文件占用过多磁盘空间。

数据持久化:对于需要持久化数据的容器,确保正确配置了数据卷或绑定挂载,以便在容器重启后数据不会丢失。

网络配置:如果容器需要特定的网络配置,比如固定的IP地址或访问特定的网络资源,确保这些配置在容器启动时是正确的。

安全性:自动启动的容器可能会增加安全风险,特别是如果它们公开了网络端口。确保只有必要的端口被暴露,并且适当的安全措施已经到位。

更新和维护:定期检查并更新你的容器镜像和配置,以确保安全性和功能性。自动启动的容器应该包含在你的常规维护计划中。

系统启动时间:如果你有多个容器设置为开机启动,这可能会影响系统的启动时间。在某些情况下,可能需要优化启动顺序或延迟某些容器的启动。

监控和告警:设置适当的监控和告警机制,以便在容器启动失败或运行不正常时能够及时发现并采取行动。

确保在生产环境中,你已经考虑了这些因素,并且对于任何关键服务,都有适当的备份和恢复计划。

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 容器
    +关注

    关注

    0

    文章

    481

    浏览量

    21883
  • Docker
    +关注

    关注

    0

    文章

    437

    浏览量

    11603

原文标题:Docker 容器开机自动启动

文章出处:【微信号:凌顺实验室,微信公众号:凌顺实验室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何在Docker中创建容器

    Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal
    发表于 01-03 15:58

    Docker容器实现HarmonyOS编译环境(WifiIoT)--仅需3个步骤完成环境,1个步骤编译

    docker容器就是启动系统后的运行载体(速度比常规虚拟机快多了),容器中的内容是不会保存的。所以我们需要将外部系统的目录挂载到容器中,这
    发表于 10-21 13:05

    理解Docker容器并畅玩docker

    !命令行!玩docker,简单几句命令就够了。Docker容器响应迅速,执行迅速,回忆一下VM启动要多久?最佳的试验场所,想怎么玩怎么玩,rm -rf /* 根本不是大问题。主机上删掉
    发表于 11-05 09:54

    WSL2与Docker容器之间相互迁移的教程

    WSL与DockerWSL非常像windows版的Docker,可以启动容器”(特意直接加引号,下面有解释),在容器世界里面,可以执行各种Linux操作。下面这样,是不是和
    发表于 03-17 15:13

    Docker容器管理命令(一)

    1、Docker容器管理命令的使用方法查看当前主机本地docker镜像:启动容器必须依赖镜像,所以要获取到镜像的唯一标识docker
    发表于 04-20 17:55

    Docker容器管理命令(二)

    1、Docker容器管理命令的使用方法批量删除docker 容器docker cp命令docker
    发表于 04-21 11:31

    基于Docker的云资源弹性调度策略

    存储方法进行改进;然后,建立了一个基于节点综合负载的资源调度优化模型;最后,将Ceph集群和Docker容器的特点相结合,利用Docker Swarm实现了既考虑数据存储、又考虑集群负
    发表于 03-29 10:11 0次下载
    基于<b class='flag-5'>Docker</b>的云资源弹性调度<b class='flag-5'>策略</b>

    Docker容器与虚拟机的区别

    我曾经将Docker容器视为轻量级,精简的虚拟机。 进行这种比较是有道理的,因为至少在Docker的最初市场中,总是将其与虚拟机进行比较-例如," Docker花费的
    的头像 发表于 05-03 17:17 7405次阅读

    docker的4种网络模式

    Docker 使用 Linux 桥接,在宿主机虚拟一个 Docker 容器网桥(docker0),Docker
    的头像 发表于 08-14 11:50 1242次阅读

    docker的4种网络模式配置

    Docker 使用 Linux 桥接,在宿主机虚拟一个 Docker 容器网桥(docker0),Docker
    的头像 发表于 10-10 10:37 946次阅读

    关于Docker的一些基础操作有哪些

    进入容器,安装Docker,设置开机启动
    的头像 发表于 03-03 15:38 443次阅读

    docker容器容器之间通信

    Docker是一种轻量级容器化技术,能够将应用程序及其依赖项封装在一个独立、可移植的容器中。而容器化的应用程序通常是以分布式方式设计的,因此实现
    的头像 发表于 11-23 09:36 545次阅读

    docker进入容器的方法有哪些

    Docker是一种流行的容器化平台,它能够快速构建、交付和运行应用程序。在使用Docker时,我们经常需要进入容器进行调试、管理和运行命令等操作。本文将详细介绍
    的头像 发表于 11-23 09:45 3398次阅读

    docker容器有几种状态

    Docker 容器的各种状态及其含义。 Created(已创建):当我们使用 docker create 命令创建一个容器时,它会进入已创建状态。在这个状态下,
    的头像 发表于 11-23 09:50 826次阅读

    ARM平台实现Docker容器技术

    上,亦可实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。使用Docker,可像管理应用程序一样管理基础结构。通过利用Docker的快速发布、测试和部署代码的方法,可显著减少
    的头像 发表于 03-07 13:48 193次阅读
    ARM平台<b class='flag-5'>实现</b><b class='flag-5'>Docker</b><b class='flag-5'>容器</b>技术