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

时间:2019-04-12 07:35:17

标签: docker aerospike

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

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

aerospike: unrecognized service

我已使用此命令启动服务,

service aerospike start

Dockerfile:

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

2 个答案:

答案 0 :(得分:0)

您的容器中没有像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帖子:DataFrame.to_excel,了解如何在docker容器中运行systemd。

答案 1 :(得分:0)

通常不是在容器中运行服务的最佳实践,因为您最终将不得不运行与PID 1不同的进程,并且如果应用程序崩溃,容器将不会自动重新启动或停止,这给了您一个错误的主意一切都很好。

您应该安装依赖项/应用程序,然后直接在入口点或脚本中运行它。

检查官方的Aerospike Dockerfile以了解其操作https://github.com/aerospike/aerospike-server.docker/blob/c5c6355c81b03b1e7cf6d817dfc053baabd4b7b6/Dockerfile

我建议您还阅读有关构建映像的最佳做法的docker文档:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/