自动崩溃时重新启动 Docker 容器

2024-04-15

如果容器自动崩溃,我想重新启动它。我不知道该怎么做。我有一个脚本 docker-compose-deps.yml ,其中包含 elasticsearch、redis、nats 和 mongo。我在终端中运行它来进行设置:docker-compose -f docker-compose-deps.yml up -d。之后,我通过运行以下命令来设置容器:docker-compose up -d。如果这些容器崩溃了,有没有办法让它们重新启动?我注意到 docker 有一个内置的重启功能,但我不知道如何实现它。

经过一些反馈后我添加了restart: always to my docker-compose文件和我的docker-compose-deps.yml文件。这看起来正确吗?或者这就是您始终执行重启的方式?

docker-compose 示例

myproject-server:
  build: "../myproject-server"
  dockerfile: Dockerfile-dev
  restart: always
  ports:
  - 5880:5880
  - 6971:6971
  volumes:
  - "../myproject-server/src:/src"
  working_dir: "/src"
  external_links:
  - nats
  - mongo
 - elasticsearch
 - redis
myproject-associate:
  build: "../myproject-associate"
  dockerfile: Dockerfile-dev
  restart: always
  ports:
  - 5870:5870
  volumes:
  - "../myproject-associate/src:/src"
  working_dir: "/src"
  external_links:
  - nats
  - mongo
  - elasticsearch
  - redis

docker-compose-deps.yml 示例

nats:
  image: nats
  container_name: nats
  restart: always
  ports:
  - 4222:4222
mongo:
  image: mongo
  container_name: mongo
  restart: always
  volumes:
  - "./data:/data"
  ports:
  - 27017:27017

如果您使用 compose,它有一个重新启动标志,该标志类似于 docker run 命令中存在的标志,因此您可以使用它。这是有关此部分的文档的链接 -https://docs.docker.com/compose/compose-file/ https://docs.docker.com/compose/compose-file/

当您部署到外部时,这取决于您部署到哪里。大多数容器集群(例如 kubernetes、mesos 或 ECS)都会有一些可用于自动重启容器的配置。如果您不使用任何这些工具,您可能会手动启动容器,然后可以像在本地一样使用重新启动标志。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自动崩溃时重新启动 Docker 容器 的相关文章

随机推荐

  • NHibernate - 左连接

    我有以下两个表 JobsAreaID JobNo 复合键 Logs日志ID 区域ID 作业编号 我需要获取所有没有与之关联的日志的作业 在 SQL 中我可以这样做 SELECT Jobs AreaID Jobs JobNo FROM Job
  • 使用 numpy 执行外加法

    抱歉 如果这是一个愚蠢的问题 但我刚刚开始使用 python numpy 我真的不确定最有效的方法 我正在为一些学生制作一个演示 N 体模拟器 但现在 我通过循环这些粒子的位置来计算粒子之间的力 可以预见 速度会像糖蜜一样慢 基本上 给定一
  • 在java中注入击键

    我正在寻找一种将击键注入操作系统键盘输入缓冲区的方法 就像当您单击一个按钮时 程序会插入一个 或多个 键盘敲击 我想在java中执行此操作 因为我想在 win linux和osx 中运行它 我想我必须利用 JNI 有人有什么想法吗 感谢所有
  • 向 Qt 对话框添加最小化按钮?

    我创建了一个QDialog基于使用 Qt Creator 的应用程序 除了对话框没有最小化按钮之外 一切都很好 我怎样才能添加一个 设计器中有我可以设置的属性吗 您无法自己添加最小化按钮 因为它是由窗口管理器处理的 您可以使用窗口管理器提示
  • Devise_token_auth 冲突?

    使用默认的 api 标签在 Rails 5 中创建了一个新的 API 并使用命令安装了 devise token auth gemrails generate devise token auth install User auth 关于做r
  • JavaScript 未知数量的参数

    在我的项目中 我注册了不同的函数 具有不同数量的参数 作为许多事件的侦听器 当事件发生时 我需要触发相关的函数 我接收以数组形式传递给侦听器方法的参数 而侦听器函数需要每个单独的参数 所以 我正在这样做 但我不喜欢这种方法 想知道是否有一种
  • 修改 Silverlight 3 中新 Popup 控件 (ChildWindow) 的外观/行为

    我想删除 Silverlight 3 中新 Popup 控件的灰色标题 如果这可能的话有什么想法吗 很简单 只需编辑默认的 ChildWindow 样式即可 在 Blend 3 中创建一个 ChildWindow 类型的新项目 右键单击项目
  • 在 Linux 中何时使用 pthread_exit() 以及何时使用 pthread_join()?

    我是 pthreads 的新手 我正在尝试理解它 我看到了一些例子 如下所示 我可以看到main 被 API 阻止pthread exit 而且我见过 main 函数被 API 阻塞的例子pthread join 我无法理解何时使用什么 我
  • Java 调试器:是否可以有选择地挂起线程?

    在我过去作为 C C 程序员的生活中 在某些平台和调试器组合上可以选择性地挂起线程 到达断点后 可以发出命令 或单击 GUI 中的内容 来冻结 解除冻结 挂起 唤醒 线程 在执行进一步的步骤 下一步 运行 继续命令时 挂起的线程将不会执行任
  • 使用 AWS codedeploy 部署 Nodejs 实例的 NPM 问题

    我目前正在尝试通过 Github 和 AWS Codedeploy 将 Nodejs 应用程序自动部署到 EC2 实例 我已按照以下指示进行操作here http docs aws amazon com codedeploy latest
  • Array.size() 与 Array.length

    两者有什么区别 所以我知道array size 是一个函数 而array length是一个属性 是否存在使用其中一种而不是另一种的用例 是不是效率更高 我会想象 length明显更快 因为它是一种属性而不是方法调用 为什么人们会使用较慢的
  • Wordpress Multisite - 无法访问子文件夹站点仪表板

    我是 WordPress 多站点新手 我发现了一个奇怪的问题 我已经安装了 WordPress 的新实例 并使用子文件夹启用了多站点 唯一的问题是当我创建新网站时 它无法正确显示 并且我无法访问新网站仪表板 我已将这些行添加到wp conf
  • 如何在 Power Query M 中发表评论?

    有没有办法注释 M 代码 注释掉代码行或代码块 M 支持两种不同类型的注释 单行注释可以以 开头 您可以使用 注释掉多行或注释掉行中间的文本 例如 1 some comment 2 如果注释位于行尾 则它们似乎会在公式栏中消失 但它们仍然存
  • postgresql 加密

    我有 oracle 数据库可以转移到新的 postgresql 服务器 某些表具有敏感字段 并且这些表均通过 DBMS OBFUSCATION TOOLKIT DESENCRYPT DESENCRYPT 进行加密 问题就在这里 postgr
  • PostgreSQL 和 C# 数据类型

    我搜索了 PostgreSQL 和 C 之间的类型转换表 但没有找到任何内容 如果有时间 我会研究上表上的空单元格 但如果您知道包含这些信息的网页 我非常适合您的帮助 Postgre Type gt C Type bigint gt Int
  • 当 EnableSessionState 为 ReadOnly 时更改会话状态

    我有一个 旧的 ASP NET WebForms 项目 并且我想尽可能将 EnableSessionState 设置为 ReadOnly 以防止会话锁阻止单个用户并发页面加载 在某些页面上 我实际上确实想写入会话状态 通常 只需将那些需要写
  • 在 Chrome 中单步执行 JavaScript 断点时如何查看 DOM?

    在 Chrome DevTools 中 在 源 选项卡中调试 JavaScript 时 在 JS 代码中添加 debugger 行 然后使用 F10 F11 单步执行代码 如何在单步执行代码的同时查看 DOM 如果我的 JS 正在操作 DO
  • 在 onResume/onPause 中重新启动/暂停线程

    我有一个使用 SurfaceView 实现来显示对象的游戏 我有一个线程 它会不时地将 SurfaceView 绘制到屏幕上 游戏正在完全运行 不幸的是 它需要在游戏中断时具有暂停功能 好吧 我知道我需要操纵onResume and onP
  • 从“git diff”中排除单个提交

    大家早 假设我有一系列提交 如下所示 abc000 def111 abc222 def333 abc444 def555 我知道我可以使用 git diff c binary abc000 def555 gt tmp abc000 def5
  • 自动崩溃时重新启动 Docker 容器

    如果容器自动崩溃 我想重新启动它 我不知道该怎么做 我有一个脚本 docker compose deps yml 其中包含 elasticsearch redis nats 和 mongo 我在终端中运行它来进行设置 docker comp