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

我在Elasticsearch和Docker上都是新手,对此我有一些疑问。 我通过以下命令获取了docker / elastic image:

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运行”命令用于在容器内运行特定的命令。 那么根据上一个,unix命令是什么?

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

那么命令在哪里? 我怀疑这就像弹性search一起开始的容器。 如果是这样,形象的创造者如何做到这一点?

  1. 没有弹性的标准输出的情况下运行容器的最佳方式是什么?

  2. 我试图build立一个基于CentOS的自定义docker镜像,我想在其中安装elasticsearch(通过rpm)。 安装工作正常,但是当我尝试通过systemctl运行elasticsearch.service时出现以下错误:

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

我该如何解决这个问题?

让我试着一个接一个的回答问题:

  1. 这是通过在此处链接的Dockerfile中提供默认的CMD来完成的。 此外, docker run用于运行一个容器,在该容器中可以使用该命令提供CMD ,或者使用Dockerfile指定的默认值。 我会build议阅读关于ENTRYPOINTCMD的详细信息 。

  2. 你将不得不使用-d标志。 它将以独立模式运行容器,从而为您提供正确的内容。 详情在这里。 可能会添加 – --restart=always运行它作为长期运行的服务。

  3. 尝试与sudo ? 这里没有足够的信息来回答这个部分。 请提供可能有所帮助的systemd服务日志。

我希望它有帮助!