来自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
这是我的问题:
-
我从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一起开始的容器。 如果是这样,形象的创造者如何做到这一点?
-
没有弹性的标准输出的情况下运行容器的最佳方式是什么?
-
我试图build立一个基于CentOS的自定义docker镜像,我想在其中安装elasticsearch(通过rpm)。 安装工作正常,但是当我尝试通过systemctl运行elasticsearch.service时出现以下错误:
无法获得D-Bus连接:不允许操作
我该如何解决这个问题?
让我试着一个接一个的回答问题:
-
这是通过在此处链接的Dockerfile中提供默认的
CMD
来完成的。 此外,docker run
用于运行一个容器,在该容器中可以使用该命令提供CMD
,或者使用Dockerfile
指定的默认值。 我会build议阅读关于ENTRYPOINT
和CMD
的详细信息 。 -
你将不得不使用
-d
标志。 它将以独立模式运行容器,从而为您提供正确的内容。 详情在这里。 可能会添加 –--restart=always
运行它作为长期运行的服务。 -
尝试与
sudo
? 这里没有足够的信息来回答这个部分。 请提供可能有所帮助的systemd
服务日志。
我希望它有帮助!