带有 upstart 和 syslog 的 Ubuntu docker 容器

2024-03-20

四处搜寻后,我仍然很困惑你是否可以拥有码头集装箱运行 Ubuntu 并运行初始化系统(暴发户) and syslog, 或不。

我知道 docker 容器是用于运行单个进程而不是完整的操作系统,但我的用例是在各种 Linux 发行版上测试守护进程,确保守护进程在崩溃等情况下成功启动、停止和重新启动,并记录到 syslog 。所以我正在尝试决定是否可以使用 docker 容器来实现此目的,或者也许我会更好Vagrant https://www.vagrantup.com/.

我发现的一些资源令人困惑:

  • 容器无法连接到 Upstart码头工人/码头工人#1024 https://github.com/docker/docker/issues/1024

    因为 Docker 将默认的 /sbin/init 替换为自己的,所以有 无法在 Docker 容器内运行 Upstart init。

  • 将 Supervisor 与 Docker 一起使用 https://docs.docker.com/articles/using_supervisord/

    传统上,Docker 容器在启动时运行单个进程,例如 Apache 守护进程或 SSH 服务器守护进程。通常,您希望在一个容器中运行多个进程。有多种方法可以实现这一目标,包括使用简单的 Bash 脚本作为容器的值CMD安装流程管理工具的说明。

所以基本上我最后需要的是能够运行:

$ initctl start <daemon>
$ initctl stop <daemon>

当然,在创建必要的conf文件之后/etc/init/<daemon>.conf,并查看日志syslog.


see https://github.com/BITPlan/docker-stackoverflowanswers/tree/master/33233329 https://github.com/BITPlan/docker-stackoverflowanswers/tree/master/33233329重复步骤

从 Dockerfile 开始

FROM ubuntu:14.04

构建它:

docker build -t bitplan/ubuntutest:0.1 .
Sending build context to Docker daemon 2.048 kB
Step 0 : FROM ubuntu:14.04
---> 0a17decee413
Successfully built 0a17decee413

运行它:

docker run -it bitplan/ubuntutest:0.1 /bin/bash

并检查正在运行的服务:

 root@50a738241d03:/# service --status-all
 [ ? ]  console-setup
 [ + ]  cron
 [ ? ]  killprocs
 [ ? ]  kmod
 [ ? ]  networking
 [ ? ]  ondemand
 [ - ]  procps
 [ ? ]  rc.local
 [ + ]  resolvconf
 [ - ]  rsyslog
 [ ? ]  sendsigs
 [ - ]  sudo
 [ - ]  udev
 [ ? ]  umountfs
 [ ? ]  umountnfs.sh
 [ ? ]  umountroot
 [ - ]  urandom

您可以看到,在典型的基于操作系统的容器中运行着多个服务。如果你安装更多的东西,比如apache、mysql之类的,就会有更多的服务。

因此,如果您想开始更多这些,我建议您使用

服务启动 服务站

你会发现例如在我们的 docker-mediawiki 镜像的入口点:

https://github.com/BITPlan/docker-mediawiki/blob/master/docker-entrypoint.sh https://github.com/BITPlan/docker-mediawiki/blob/master/docker-entrypoint.sh

参见例如

service mysql start

在那里。

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

带有 upstart 和 syslog 的 Ubuntu docker 容器 的相关文章

随机推荐

  • 如何修改 Kotlin 序列的前缀但保留尾部?

    Kotlin 提供take and takeWhile先采取的方法n的项目Sequence
  • 如何在 WPF 中禁用用户控件的大小调整

    我有用户控件 我想禁用其大小调整 用户控件是
  • 创建 PDF 时内存警告和崩溃

    生成大型 PDF 时 我的应用程序收到内存警告 然后在 PDF 生成过程中崩溃 PDF 被绘制到网络视图中 当页面超过一定数量 取决于设备 时 我会耗尽内存 到目前为止 我对此事的研究使我明白我需要 change UIGraphicsBeg
  • 未提供有效凭据(机制级别:未提供有效凭据(机制级别:找不到任何 Kerberos tgt))httpclient

    我正在尝试使用 ntlm Auth 方案使用 http 客户端从服务器下载 pdf 文件 但我遇到以下错误时 当我使用 wget 以用户名和密码作为参数时 该文件正在下载 但如果我使用相同的用户名和密码 则使用 java 代码会失败并显示
  • AWS Glue 到 Redshift:是否可以替换、更新或删除数据?

    以下是我如何设置的一些要点 我将 CSV 文件上传到 S3 并设置了 Glue 爬虫来创建表和架构 我有一个 Glue 作业设置 它使用 JDBC 连接将数据从 Glue 表写入我们的 Amazon Redshift 数据库 该作业还负责映
  • 在 Haskell 中获取子列表

    可能很简单 但我浏览了文档并用谷歌搜索了示例 但我仍然不确定答案 如果我有一个这样的列表 1 2 3 4 5 6 7 8 9 0 我想提取一个切片 比如从索引 4 到索引 8 即我想要 5 6 7 8 9 在 Haskell 中执行此操作的
  • 定义一个大的vba字符串的最佳方法 - 即heredoc等效?

    我应该如何在VBA中定义大字符串 还有比下面这样的编码更好的方法吗 Dim largeString as String largeString This is a long block of text that I want to fill
  • 如何在 Swift 中对这个自定义 UITextField 进行单元测试?

    我创建了一个像这样的自定义 UITextField import Foundation import UIKit class NoZeroTextField UITextField UITextFieldDelegate required
  • 如何在 Angular 5 中为每个 HTTP 请求显示微调器?

    我是 Angular 5 的新手 如何编写一个通用函数来为 Angular 5 中的每个 HTTP 请求显示微调器 请帮我实现这个 您可以使用角度Http拦截器 https angular io api common http HttpIn
  • GStreamer Tee(多路复用器)

    我正在尝试将视频流 来自我的网络摄像头 存储到 MKV 和 FLV 文件中 这意味着我必须在 h264 编码后分割视频和音频管道 并使用不同的复用器复用每个路径 这就是我想象的它应该如何工作 gt queue gt matroskamux
  • 监听/处理 JPanel 事件

    先生们女士们晚上好 我有一个无法解决的 Java Swing 问题 也许你可以帮助我 这里是 我有一个使用 BorderLayout 的 JFrame 和许多 JPanel 每次我需要建立一个新屏幕 即从主菜单中 单击搜索按钮时 转到搜索菜
  • 什么是数组到指针的转换又名。衰变?

    什么是数组到指针的转换又名 衰变 和数组指针有关系吗 据说数组 衰变 成指针 C 数组声明为int numbers 5 不能被重新指向 即你不能说numbers 0x5a5aff23 更重要的是 衰变一词意味着类型和维度的损失 number
  • 使用 Ajax 的 Jquery 日期选择器无法正常工作

    我的网站有很多类别 每个类别页面都有自己的帖子 在这里我使用了 jQuery datepicker 如果用户想查看 8 月 20 日的帖子 他们可以单击日历上的特定日期并查看日期帖子 另一件事 如果我打开一个类别 则应该只显示今天的帖子 请
  • 我想使用 mpdf 在 PDF 中设置页眉和页脚

    我已经使用生成了 PDFmpdfCodeIgniter 中的库 我想附加带有适当边距的页眉图像和页脚图像 我创建了一个代码 但页眉和页脚重叠 controller this gt load gt library m pdf param A4
  • 从 C 中的 UTF8 字符串中删除变音符号

    我正在编写一个 C 程序来搜索数据库中的大量 UTF 8 字符串 其中一些字符串包含带教义的英文字符 例如重音符号等 搜索字符串是由用户输入的 因此很可能不包含此类字符 有没有一种方法 函数 库等 可以从字符串中删除这些字符 或者只是执行不
  • unicharset_extractor:找不到命令

    我想使用超正方体创建新的列车数据 因此 请按照以下网站中提到的步骤进行操作 https blog cedric ws how to train tesseract 301 https blog cedric ws how to train
  • Scriptom Groovy 格式化 Excel 示例

    我正在寻找一些 Groovy 对 Excel 文档执行基本格式化命令的示例 我还想知道在哪里可以找到这些命令的存储库 你会怎样 插入一行 将单元格格式设置为短日期 时间等 将整列或整行加粗 怎么样 POI 3 9 假设您有一个输入 XLS
  • JMESPath - 连接嵌套数组中的项目

    我有一个 JSON key processId 29231 fields attachment id 79572 filename File1 png id 74620 filename File2 docx id 79072 filena
  • WinForms中发生关闭事件时如何保存数据?

    我想要一个消息框来询问表单关闭事件上未保存的数据 如果用户选择 是 则将数据保存在文本文件中并退出应用程序 如果用户选择不保存而不退出应用程序 我尝试了以下代码 但它不会关闭应用程序并使消息框一次又一次出现 public void Save
  • 带有 upstart 和 syslog 的 Ubuntu docker 容器

    四处搜寻后 我仍然很困惑你是否可以拥有码头集装箱运行 Ubuntu 并运行初始化系统 暴发户 and syslog 或不 我知道 docker 容器是用于运行单个进程而不是完整的操作系统 但我的用例是在各种 Linux 发行版上测试守护进程