【问题标题】:aerospike: unrecognized service in Docker container?aerospike:Docker 容器中无法识别的服务?
【发布时间】:2019-04-12 07:35:16
【问题描述】:

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

【问题讨论】:

  • 没有 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 && \ cd / && \ rm -rf $TEMPDIR

标签: docker aerospike


【解决方案1】:

您的容器中没有像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 帖子:https://devops.stackexchange.com/questions/1635/is-there-any-concrete-and-acceptable-solution-for-running-systemd-inside-the-doc 了解如何在 docker 容器中运行 systemd。

【讨论】:

    【解决方案2】:

    通常不是在容器中运行服务的最佳实践,因为您最终将不得不以 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/

    【讨论】:

      猜你喜欢
      • 2015-12-12
      • 1970-01-01
      • 2019-10-14
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2017-06-21
      相关资源
      最近更新 更多