【Linux docker 容器】关于想要让虚拟机在开机时候也docker自己启动,容器也自己启动,省去要自己开docker和容器

embedded/2025/3/13 13:37:42/

  1. 确认 Docker 服务状态

    首先,你需要确保 Docker 服务已经在虚拟机上安装并正确配置。你可以使用如下命令来检查 Docker 服务的状态:

     systemctl status docker.service

    如果服务没有运行,你可以使用以下命令启动它:

     systemctl start docker.service

  2. 设置 Docker 开机自启动

    使用 systemctl enable 命令来设置 Docker 服务在虚拟机开机时自动启动:

     sudo systemctl enable docker.service

二、设置 Docker 容器开机自动启动

  1. 创建或获取容器 ID/名称

    确保你已经有一个或多个 Docker 容器,并且知道它们的 ID 或名称。如果你还没有创建容器,你可以使用 docker run 命令来创建一个新容器。

  2. 如果你是在创建容器时就想设置自动重启策略,你可以在 docker run 命令中添加 --restart=always 选项。

    docker run --restart=always (容器id或者容器名)

  3. 设置容器自动重启策略

    使用 docker update 命令来设置容器的自动重启策略。你可以将重启策略设置为 always,这样容器就会在 Docker 服务启动时自动启动,并且在容器退出时也会自动重启。

    docker update --restart=always 容器ID或名称

    如果你不想要了就把always改成no就行

    附上容器提供的其他策略:

    Docker提供了几种重启策略,以帮助管理和维护容器的运行状态。以下是关于always、unless-stopped、on-failure这三种重启策略的详细介绍:

    看下策略之间先看下面的注意:

  4. always策略

    行为:无论容器的退出原因是什么,Docker都会自动重启该容器。

    适用场景:这个策略适用于需要持续运行的关键服务,如Web服务器、数据库、消息队列等。它确保这些服务在发生任何故障时都能自动恢复,从而提高系统的可靠性和可用性。

  5. unless-stopped策略

    行为:只要容器没有被手动停止,Docker就会自动重启它。如果容器被手动停止了,则不会自动重启,除非再次手动启动。

    适用场景:这个策略提供了更灵活的重启选项。它适用于那些需要在维护、升级或调试期间暂时停止的服务,但又不希望这些服务在停止后自动重启的情况。

  6. no:默认策略,在容器退出时不重启容器。也就是说,无论容器是正常退出还是异常退出,Docker 都不会自动重启它。
  7. on-failure:在容器非正常退出时(即退出状态码非0)才会重启容器。Docker 会一直重启容器,直到容器成功运行(退出状态码为0)或者达到重启次数限制(如果指定了的话)。如果没有指定重启次数,则会一直重启。
  8. on-failure:N:在容器非正常退出时重启容器,但最多重启N次。这里的N是一个正整数,表示Docker在容器退出状态码非0时会尝试重启容器的最大次数。
  9. 三、验证设置

  1. 重启虚拟机: 在设置了 Docker 服务和容器的自动启动后,你可以重启虚拟机来验证设置是否生效。

  2. 检查 Docker 服务和容器状态: 在虚拟机重启后,使用 systemctl status docker.service 命令来检查 Docker 服务的状态,确保它已经启动。然后,使用 docker ps 命令来检查容器是否已经自动启动。

你可以通过

 docker inspect 容器id或者名

找到下面这个名字,就能看到里面是什么策略了


http://www.ppmy.cn/embedded/172257.html

相关文章

【MapSet】哈希表

目录 1. 搜索树 1.1 概念 1.2 操作-查找 1.3 操作-插入 1.4 操作-删除(难点) 1.5 性能分析 1.6 和java类集的关系 2. 搜索 2.1 概念及场景 2.2 模型 3. Map的使用 3.1 关于Map的说明 3.2 关于Map.Entry的说明 3.3 Map的常用方法说明 3.4 …

选择循环汇编

一、选择结构(if-else) 核心逻辑: 比较条件:用 CMP 指令 条件跳转:用 JE(等于跳转)、JNE(不等于跳转)、JG(大于跳转)等 代码块分割&#xff1a…

SVN 拉取,文件冲突 解决办法

情景 svn 在拉取代码时 提示 已跳过,其余有冲突 ,警告至少还有一个的文件处于冲突状态 导致文件拉取失败 一、原因 版本库和本地工作副本之间存在文件冲突,导致文件无法正常拉取。 二、 Terminal 窗口解决办法 1.查看冲突文件 在 Termin…

Excel之实践出真知——数据分析

Excel之实践出真知——数据分析 1. 引言2. 内容3. 社群4. 其他文章 1. 引言 学习Excel的过程也许会让你感到很枯燥,这一点我是深有体会的,为什么会这样呢,今天我们要探讨的问题就是这一个,我们开始吧。 学习,学了之后…

交通工具驱动电机技术解析:电瓶车、汽车、地铁与高铁的电机对比

点击下面图片,为您提供全新的嵌入式学习路线 文章目录 [TOC](文章目录)一、引言二、电瓶车:直流无刷电机(BLDC)三、电动汽车:永磁同步电机(PMSM)与感应电机1. 永磁同步电机(主流选…

面试之《commonjs,requirejs和es6 Module的区别》

设计理念 CommonJS:是为服务器端环境设计的模块化规范,以同步加载模块为核心思想。服务器端读取文件速度快,同步加载不会造成明显性能问题,方便开发者在代码执行前就确定模块间的依赖关系,便于管理和维护。RequireJS&…

docker搭建elk

文章目录 1.拉取镜像2.ES配置3.logstash配置4.kibana配置5.创建自定义网络6.docker-compose.yml文件7.springboot对接Logstash1.创建一个springboot项目引入主要依赖2.application.yml配置3.resources目录中新增logback-spring.xml4.启动项目,搞点日志5.进入kibana控…

批量将 CSV 按行拆分成多个文件

CSV 格式是我们工作当中经常会接触到的一种格式,虽然它也可以通过 Excel 的方式打开,但是它跟 Excel 文档还是有很大的区别的。它的体积要比 Excel 文档要小很多,也非常的灵活,非常的实用。前面我们介绍过如何拆分 Excel 文档。那…