以分离模式启动的 docker 容器在进程执行后停止

2024-02-11

我使用以下命令以分离模式创建 docker 容器:

docker run [OPTIONS] --name="my_image" -d container_name /bin/bash -c "/opt/init.sh"

所以我需要在创建的容器中执行“/opt/init.sh”。我看到容器在脚本执行完成后停止。

如何在容器创建时保持容器启动与脚本/服务执行分离?


docker容器运行有2种模式

  1. 分离模式 - 在这种模式下,您执行命令并在命令完成后终止容器
  2. 前台模式 - 在这种模式下,您运行 bash shell,但退出 shell 后也会终止容器

您需要的是后台模式。这没有在参数中给出,但有很多方法可以做到这一点。

  1. 在分离模式下运行无限命令,这样命令永远不会结束,容器也永远不会停止。我通常使用“tail -f /dev/null”,只是因为它相当轻,并且 /dev/null 存在于大多数 Linux 映像中

docker run -d --name=名称容器 tail -f /dev/null

然后你可以像这样进入正在运行的容器:

docker exec -it 名称 /bin/bash -l

如果使用 -l 参数,它将以登录模式登录,该登录模式将像普通 bash 登录一样执行 .bashrc 。否则,你需要再次手动bash里面

  1. 入口点 - 您可以创建任何 sh 脚本,例如 /entrypoint.sh。在entrypoint.sh中你也可以运行任何永无止境的脚本

#!/bin/sh

#/入口点.sh

mysql服务重启

...

tail -f /dev/null

保存这个entrypoint.sh后,对其进行chmod a+x,退出docker bash,然后像这样启动它:

docker run --name=名称容器 --entrypoint /entrypoint.sh

这允许每个容器都有自己的启动脚本,您可以运行它们而不必担心每次都附加启动脚本

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

以分离模式启动的 docker 容器在进程执行后停止 的相关文章

  • 您可以将 Docker 映像直接拉入 IBM Cloud Kubernetes 集群吗?

    TL DR 抱歉 如果这是基础知识 我正在学习 Kubernetes 我尝试在 IBM Cloud 中创建 Kubernetes 部署 但失败了 该部署在我的本地 minikube 上运行良好 但在 IBM Cloud 中失败 我是否需要使
  • 加载数据infile,Windows和Linux的区别

    我有一个需要导入到 MySQL 表的文件 这是我的命令 LOAD DATA LOCAL INFILE C test csv INTO TABLE logs fields terminated by LINES terminated BY n
  • Android 时钟滴答数 [赫兹]

    关于 proc pid stat 中应用程序的总 CPU 使用率 https stackoverflow com questions 16726779 total cpu usage of an application from proc
  • 如何在数组中存储包含双引号的命令参数?

    我有一个 Bash 脚本 它生成 存储和修改数组中的值 这些值稍后用作命令的参数 对于 MCVE 我想到了任意命令bash c echo 0 0 echo 1 1 这解释了我的问题 我将用两个参数调用我的命令 option1 without
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • PHP 从命令行启动 gui 程序,但 apache 不启动

    首先 我阅读了有类似问题的人的一些帖子 但所有答案都没有超出导出 DISPLAY 0 0 和 xauth cookies 这是我的问题 提前感谢您的宝贵时间 我开发了一个小库 它使用 OpenGL 和 GLSL 渲染货架 过去几天我将它包装
  • 如何通过 Apache Airflow 中的 Docker Operator 使用卷

    我正在开发一个 ETL 流程 使用 DockerOperator 通过 Apache Airflow 进行调度和编排 我正在使用 Windows 笔记本电脑 因此我只能从 Docker 容器内运行 Apache Airflow 我能够在我的
  • Linux 内核标识符中前导和尾随下划线的含义是什么?

    我不断遇到一些小约定 比如 KERNEL Are the 在这种情况下 是内核开发人员使用的命名约定 还是以这种方式命名宏的语法特定原因 整个代码中有很多这样的例子 例如 某些函数和变量以 甚至 这有什么具体原因吗 它似乎被广泛使用 我只需
  • 热重载在docker中运行的java程序

    我开发了一个java程序 应该在docker中运行 然而 我在调试docker中运行的java程序时遇到了很多痛苦 我在网上搜索 一些教程提出了像 spring dev tools 这样的工具 因为我的java程序是基于spring boo
  • 错误:无法满足的约束 - 在 php:7-fpm-alpine 上

    我正在考虑在 fpm alpine 容器上设置 laravel 遇到一个问题 下面的 Dockerfile 会产生一些错误 FROM php 7 fpm alpine install extensions needed for Larave
  • iptables通过注释删除特定规则

    我需要删除一些具有相同评论的规则 例如 我有带有 comment test it 的规则 所以我可以像这样获得它们的列表 sudo iptables t nat L grep test it 但是我怎样才能删除所有带有注释 测试它 的 PR
  • 为arm构建WebRTC

    我想为我的带有arm926ej s处理器的小机器构建webrtc 安装 depot tools 后 我执行了以下步骤 gclient config http webrtc googlecode com svn trunk gclient s
  • PHP 无法打开流:是一个目录

    非常简单的 PHP 脚本 我在我亲自设置的 Ubuntu Web 服务器上的 EE 模板中运行 我知道这与权限有关 并且我已经将我尝试写入的目录的所有者更改为 Apache 用户 我得到的错误是 遇到 PHP 错误 严重性 警告 消息 fi
  • 多处理:仅使用物理核心?

    我有一个函数foo它消耗大量内存 我想并行运行多个实例 假设我有一个有 4 个物理核心的 CPU 每个核心有两个逻辑核心 我的系统有足够的内存来容纳 4 个实例foo并行但不是 8 个 此外 由于这 8 个核心中的 4 个是逻辑核心 我也不
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • 在脚本内使用不带密码的 sudo

    由于某种原因 我需要作为用户在没有 sudo 的情况下运行脚本 script sh 该脚本需要 root 权限才能工作 我认为将 sudo 放入 script sh 中是唯一的解决方案 让我们举个例子 script sh bin sh su
  • 如何确保应用程序在 Linux 上持续运行

    我试图确保脚本在开发服务器上保持运行 它会整理统计数据并提供网络服务 因此它应该会持续存在 但一天中有几次 它会因未知原因而消失 当我们注意到时 我们只需再次启动它 但这很麻烦 并且某些用户没有权限 或专有技术 来启动它 作为一名程序员 我
  • Linux 上有关 getBounds() 和 setBounds() 的 bug_id=4806603 的解决方法?

    在 Linux 平台上 Frame getBounds 和 Frame setBounds 的工作方式不一致 这在 2003 年就已经有报道了 请参见此处 http bugs java com bugdatabase view bug do

随机推荐

  • 在 SignalR Hub 上使用通用方法

    我正在为我的 SignalR 服务器创建一个 Hub 类 并希望使用一种通用方法 这将使我免于编写大量代码 但是 当我尝试从 Xamarin iOS 客户端 也是 C 语言 调用下面的服务器代码时 SignalR 给了我错误 服务器代码 您
  • Java:ExecutorService 在达到一定队列大小后阻塞提交[重复]

    这个问题在这里已经有答案了 我正在尝试编写一个解决方案 其中单个线程生成可以并行执行的 I O 密集型任务 每个任务都有重要的内存数据 所以我希望能够限制当前待处理的任务数量 如果我像这样创建 ThreadPoolExecutor Thre
  • 给定三角形顶点坐标,求 3D 三角形的旋转角度

    我尝试在 3D 中旋转和平移一个等边三角形 直到他的顶点到达某个坐标 顶点坐标F G H and F G H 已知 我能够找到新的质心c 坐标是这样的 c x F x G x H x 3 c y F y G y H y 3 c z F z
  • Android 外部库项目出现 NoClassDefFoundError

    我使用 eclipse 进行 Google Android 开发 我创建了一个图书馆项目 x Is Library在 Android 设置中 其中包括外部 jar 文件 参考库 该库项目在另一个项目 将使用该库项目的实际项目 中引用 这是通
  • 错误 - 未标记为可序列化

    我收到的错误是 Type OrgPermission in Assembly App Code ptjvczom Version 0 0 0 0 Culture neutral PublicKeyToken null is not mark
  • 根据父子数据绘制树形图或组织图

    我在带有 GroupID TreeID 的表中有父子信息 从这张表中我想得出这样的结果 画树的目的只是为了观看 该表有数千个组ID 树结构 我正在使用 NET 平台 我应该如何进行 create table parent child Gro
  • XXX_* 输入生成的 *.pb.go 文件

    我正在研究一个tutorial https ewanvalentine io microservices in golang part 1 关于 gRPC 当我生成 pb go文件 我得到一些XXX 输入我的结构 这是我的consignme
  • Eclipse > Javascript > 代码高亮不能使用对象表示法

    我在用Eclipse Helios 使用 PDT 以及当我使用默认值编辑 JavaScript 文件时JavaScript Editor JSDT 代码高亮 Mark Occurrences 不适用于 JSON style or Objec
  • 嵌套 vue.js 实例/元素

    这可能听起来像一个真正的菜鸟问题 但我对 MVVM 甚至 JS 中的 MVC 都很陌生 所以提前抱歉 我正在使用 vue js 并且到目前为止很喜欢它的简单性 但对于我想做的事情 我认为我需要以不同的方式去做 我想将 Vue 实例 元素嵌套
  • 从两个多态类继承

    给出以下代码 class T public virtual T virtual void foo 0 class U public U U void bar std cout lt lt bar lt lt std endl class A
  • 如何在 join linq 语法中比较 null

    处理 EF 4 C Face join 中的问题 SQL语法 Select a Code b Name from DepartmentMaster a Join DepartmentDetail b on isnull a ID 0 isn
  • 如何在 Snakemake 表格配置中使用列表,用于描述生物信息学管道的测序单元

    如何在 Snakemake 表格配置中使用列表 我使用 Snakemake Tabular 与 BWA mem 映射 配置来描述我的测序单元 在单独的行上测序的文库 在分析的下一阶段 我必须合并测序单元 映射的 bed 文件 并获取合并的
  • 使用 PORT=XXXX 启动节点永久脚本

    当通过特定端口运行节点命令时 我会这样启动应用程序 PORT 1234 node app js 我如何将端口传递给forever命令 无论我做什么 似乎都不想工作 我试过了 将端口作为参数传递 forever start app js 12
  • 循环浏览用户指定的根目录中的子文件夹和文件[重复]

    这个问题在这里已经有答案了 我通过各个文件的循环脚本工作正常 但我现在还需要它来查找多个目录 我被困住了 事情发生的顺序 提示用户选择他们需要的根目录 我需要脚本来查找该根目录中的任何文件夹 如果脚本找到一个 它将打开第一个 所有文件夹 因
  • 如何在Java中使用Graphics2D旋转文本?

    我想使用 Graphics2D 旋转 JPanel 上的文本 我的代码是这样的 double paso d width numeroBarras double alto datos i valor Font fBarras new Font
  • 在 MATLAB 中实现显式欧拉方法(适用于 ODE)

    我到处都找过了 但什么也没找到 首先 我想说我从未使用过 Mat Lab 所以我不知道我在做什么 我尝试了一些方法 但没有任何效果 显然 y 0 2 试图创建一个包含 0 个值为 2 的单位的列表 无论如何 有人可以帮助我吗 我需要在 Ma
  • 我们可以在透明窗口上应用着色器吗

    I am looking to apply a particular shader to a transparent window for example on a live desktop I want to create a trans
  • Perl XML::LibXML $node->findnodes($xpath) 找到它不应该找到的节点

    这是我遇到问题的一些代码 我处理一些 XML 并在 OO 类的方法中从文档中重复的几个节点中的每个节点提取一个元素 每个节点的子树中应该只有一个这样的元素 但我的代码获取所有元素 就好像它对整个文档进行操作一样 因为我只期望获得 oine
  • SSRS 报告显示为列出的目录

    如何获取 SSRS 报告以显示网页视图 当我转到 SSRS 报告页面时 它没有显示网页视图 它显示数据源 数据集和报告文件夹的列表 进入报告文件夹后 我可以通过单击它们来调用报告 没有任何问题 https docs google com f
  • 以分离模式启动的 docker 容器在进程执行后停止

    我使用以下命令以分离模式创建 docker 容器 docker run OPTIONS name my image d container name bin bash c opt init sh 所以我需要在创建的容器中执行 opt ini