来自Docker和Docker Elasticsearch图像的新手的一些问题

时间:2017-06-23 09:21:29

标签: elasticsearch docker dockerfile

我是Elasticsearch和Docker的新手,我对它们有一些疑问。我通过以下命令检索了泊坞窗/弹性图像:

docker pull docker.elastic.co/elasticsearch/elasticsearch:5.4.2

我以这种方式开始了:

docker run -p 9200:9200 -e "http.host=0.0.0.0" -e "transport.host=127.0.0.1" docker.elastic.co/elasticsearch/elasticsearch:5.4.2

以下是我的问题:

  1. 我从docker文档中了解到,“docker run”命令用于在容器内运行特定命令。那么根据前一个,unix命令是什么?

    docker run -p 9200:9200(将所有公开的端口发布到随机端口)-e“http.host = 0.0.0.0”-e“transport.host = 127.0.0.1”(设置环境变量)docker.elastic。 co / elasticsearch / elasticsearch:5.4.2(图片名称)

  2. 那么命令在哪里?我怀疑它就像elasticsearch与容器一起开始。如果是这样,图像的创建者是如何做到的?

    1. 在没有弹性标量的情况下运行容器的最佳方法是什么?

    2. 我尝试构建一个基于CentOS的自定义docker镜像,我希望像服务一样安装elasticsearch(通过rpm)。安装工作正常,但当我尝试通过systemctl运行elasticsearch.service时,我收到以下错误:

    3.   

      无法获得D-Bus连接:不允许操作

      我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

让我试着逐一回答问题:

  1. 这是通过在Dockerfile链接here中提供默认CMD来完成的。此外,docker run用于运行容器,其中可以使用命令提供CMD,或者使用Dockerfile中指定的默认值。我建议您在detail中阅读ENTRYPOINTCMD

  2. 您必须使用-d标记。它将以分离模式运行容器,为您提供您正在查找的内容。详细信息here.可以添加--restart=always以将其作为长期运行的服务运行。

  3. 试试sudo?这里没有足够的信息来回答这一部分。请提供可能有用的systemd服务日志。

  4. 我希望它有所帮助!