【问题标题】:Docker influxdb System has not been booted with systemd as init system (PID 1). Can't operateDocker influxdb 系统尚未使用 systemd 作为 init 系统 (PID 1) 启动。无法操作
【发布时间】:2021-01-15 16:47:33
【问题描述】:

我正在尝试使用它的 rpm 从头开始​​构建 influxdb。在我的场景中,我无法使用预构建的 dockerhub 映像。当我尝试使用命令systemctl start influxdb 在 docker 容器内启动 influxdb 时遇到问题。

我通常会收到以下错误:

`System has not been booted with systemd as init system (PID 1). Can't operate.`

如何在 docker 容器中启动 influxdb 服务?

这里是我的 dockerfile:

FROM centos

COPY influxdb-1.7.0.x86_64.rpm /home
COPY influxdb.conf /etc/influxdb/influxdb.conf

WORKDIR /home

ENV INFLUXDB_VERSION 1.7

ARG INFLUXDB_CONFIG_PATH=/etc/influxdb/influxdb.conf

VOLUME /var/lib/influxdb
#VOLUME /sys/fs/cgroup:/sys/fs/cgroup:ro

EXPOSE 8086

RUN rpm -if influxdb-1.7.0.x86_64.rpm
#RUN systemctl start influxdb
CMD [ "/bin/bash" ]

【问题讨论】:

  • "在我的场景中,我无法使用预构建的 dockerhub 映像。"你能解释一下这是为什么吗?
  • @PiRocks 的问题是关于在 WSL 中运行 Docker 和其他服务,而不是在 Docker 中运行。不建议在容器内运行 systemd(除非在极端情况下,这样做没有任何好处)。

标签: docker dockerfile influxdb systemd


【解决方案1】:

实际上没有任何充分的理由尝试在容器中使用 systemd,因为 Docker 本身(或 Kubernetes,或任何运行容器的东西)正在管理生命周期。以官方的 InfluxDB 镜像为例,基本上只有run influx。另请参阅this answer,了解为什么不建议使用 systemd。如果您可以使用官方图片解决您的问题,那么您的运气会好得多 - 但如果不能,您可以构建一个类似的图片(参见上面的链接)。

【讨论】:

    猜你喜欢
    • 2019-07-25
    • 1970-01-01
    • 2020-04-15
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多