首页 > 解决方案 > Docker influxdb 系统尚未使用 systemd 作为 init 系统 (PID 1) 启动。无法操作

问题描述

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

标签: dockerdockerfileinfluxdbsystemd

解决方案


尝试在容器内使用 systemd 并没有什么好的理由,因为 Docker 本身(或 Kubernetes,或任何运行容器的东西)正在管理生命周期。例如,官方的 InfluxDB 镜像基本上只是运行 influx。另请参阅此答案,了解为什么不建议使用 systemd。如果你能用官方图像解决你的问题,你会有更好的运气——但如果不能,你可以构建一个类似的图像(见上面的链接)。


推荐阅读