aerospike:Docker 容器中无法识别的服务?

aerospike: unrecognized service in Docker container?

Aerospike 服务器未在 docker 容器中启动。

在 docker 容器中安装了 aerospike,但在尝试启动服务时,它显示

aerospike: unrecognized service

我已经用这个命令启动服务了,

service aerospike start

Docker 文件:

FROM ubuntu:18.04
RUN apt-get update && apt-get install -q -y curl python2.7 python
RUN TEMPDIR=$(mktemp -d) && \
    cd $TEMPDIR && \
    curl -L 'aerospike.com/download/server/latest/artifact/ubuntu18' | tar xzv --strip-components 1 && \
    ./asinstall

您的容器中没有aerospike这样的服务:

root@6dc95b33962b:/# service --status-all
 [ ? ]  hwclock.sh
 [ - ]  procps

您安装了 aerospike-server-community 软件包,如您所见,此版本是为 systemd 准备的。

root@eb4b937d4d45:/tmp/tmp.MIlx6iwhpg# dpkg -L  aerospike-server-community
/.
/etc
/etc/aerospike
/etc/aerospike/aerospike.conf
/etc/aerospike/irqbalance-ban.sh
/etc/aerospike/sample
/etc/aerospike/sample/README.md
/etc/aerospike/sample/aerospike_mesh.conf
/etc/aerospike/sample/aerospike_ssd.conf
/etc/aerospike/telemetry.conf
/etc/sysconfig
/etc/sysconfig/aerospike
/etc/sysconfig/aerospike_telemetry
/etc/systemd
/etc/systemd/system
/etc/systemd/system/aerospike.service.d
/etc/systemd/system/aerospike.service.d/aerospike.conf
/etc/systemd/system/aerospike.service.d/aerospike.conf.coldstart
/etc/systemd/system/aerospike.service.d/aerospike.conf.default

请参阅 Stack Exchange post:https://devops.stackexchange.com/questions/1635/is-there-any-concrete-and-acceptable-solution-for-running-systemd-inside-the-doc 了解如何在 docker 容器中 运行 systemd。

通常不是 运行 容器内服务的最佳做法,因为您最终将不得不 运行 一个与 PID 1 不同的进程,如果您的应用程序崩溃,容器也不会自动重启或停止,让你误以为一切正常

您应该直接在入口点或脚本中安装 dependencies/application 和 运行。

查看官方的 aerospike Dockerfile,看看他们是如何做到的 https://github.com/aerospike/aerospike-server.docker/blob/c5c6355c81b03b1e7cf6d817dfc053baabd4b7b6/Dockerfile

我建议您还阅读 docker 构建图像最佳实践的文档:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/