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/
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/