当前位置: 首页 > 面试题库 >

运行2个程序的Docker Alpine Linux

卢健
2023-03-14
问题内容

我正在尝试使用alpine linux创建docker镜像,运行后将创建带有2个正在运行的程序的容器。这2(我认为-
我不太了解docker)无法分开,因为第一个程序更改了秒配置文件,然后也应该重新启动该程序。

我正在努力运行两个程序。我添加了自己的脚本,该脚本应该运行该程序,但我缺少一些东西-脚本是每行2行是用于运行该程序的命令-而且它仅启动第一个程序。

在带有python
subprocess和systemctl命令的ubuntu中,我重新启动运行的服务,但在高山linux中,它作为程序运行,我不知道如何重新启动/重新加载它。

谢谢你的帮助


问题答案:

我建议看一下监督方法。您可以在docker文档中找到如何使用它。

一些例子:

1. Dockerfile是:

FROM alpine:latest
RUN apk update && apk add --no-cache supervisor openssh nginx
COPY supervisord.conf /etc/supervisord.conf
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]

2. supervisord.conf是:

[supervisord]
nodaemon=true

[program:sshd]
command=/usr/sbin/sshd -D

[program:nginx]
command=nginx -c /etc/nginx/nginx.conf


 类似资料:
  • 问题内容: 我有3个线程第一打印A第二打印B第三打印C 我想按顺序打印ABCABCABC,依此类推..... 因此,我在下面编写了程序,但无法实现相同的目的。我知道一个问题,当时状态为1时,例如B1和C1线程正在等待,而当我做notifyAll()时,两个等待线程都被唤醒,并且取决于CPU分配,它可能会打印B或C。 在这种情况下,我只希望在A之后打印B。 我需要做什么修改。 问题答案: 将那些IF

  • 本文向大家介绍一次运行整个8085程序,包括了一次运行整个8085程序的使用技巧和注意事项,需要的朋友参考一下 在一次操作中,我们可以运行8085的整个程序。在这种模式下,我们可以运行整个程序,以便获得准确的结果。如果该过程失败,则尝试整个程序执行单步操作。 我们在提示符“>”处键入“ G”。通过注意在G之后不更改地址<cr>,系统的提示如下: 起始地址为:xxxx-yy / 其中存储地址为xxx

  • 万事知其然,要知其所以然,所以本节带大家来详细了解一下 Java 程序的执行过程。 从《 使用记事本编写运行Java程序》一节的案例可以看出, Java 程序的运行必须经过编写、编译和运行 3 个步骤。 编写:是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件。 编译:是指使用 Java 编译器对源文件进行错误排査的过程,编译后将生成后缀名为 .cl

  • 我有一个问题,我的熊猫数据分析运行非常缓慢,不知道是否有人可以帮助请。 如果一个帧中的IP地址是另一个帧中网络的一部分,我将尝试比较两个数据帧: VFFrame包含10列,4798行:'CIDR'列包含网络 AssetFrame包含3368列,115816行:IPv4s包含在CIDR中匹配的IP地址(因为IPv4s可以有1到3个可能的IP地址,我不得不将其拆分并清除它们) 我正在将另外7列添加到A

  • 嗨,我是新的Docker和尝试写一个新的图像从头开始。我编写这个dockerFile是为了编译和运行一个在同一个目录中可用的简单java程序。 这是DockerFile。 Docker构建成功,如下所示