Elasticsearch也可作为一个docker镜像来安装。该镜像是需要 X-Pack 来built
X-Pack 被在此图像中预装。请花几分钟时间来熟悉的X-Pack安全和如何更改默认密码。为默认密码elastic
用户changeme
。
X-Pack 包括30天的试用许可证。在这之后,你可以得到一个可用的预订或停用安全。基本许可证是免费的,包括监控扩展。
获取Elasticsearch的码头工人是发出一个简单docker pull
靠弹性泊坞窗注册表命令。
泊坞窗图像可以用下面的命令得到:
docker pull docker.elastic.co/elasticsearch/elasticsearch:5.0.1
Elasticsearch可以很快开始为开发或测试使用用下面的命令:
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.0.1
vm_max_map_count
内核设置需要被设置到至少262144
用于生产。根据您的平台:
Linux
该vm_map_max_count
设置应永久在/etc/sysctl.conf中进行设置:
$ grep的vm.max_map_count的/etc/sysctl.conf
vm.max_map_count = 262144
应用设置在实时系统类型: sysctl -w vm.max_map_count=262144
OSX with Docker for Macvm_max_map_count
设置必须与xhyve虚拟机中进行设置:
$ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
登录,没有密码。然后配置sysctl
设置:
sysctl的-w vm.max_map_count = 262144
OSX with Docker Toolbox
vm_max_map_count
设置必须通过泊坞窗机进行设置:
docker-machine ssh
sudo sysctl -w vm.max_map_count=262144
下面的例子带来了包括两个Elasticsearch节点的群集。要打开集群,使用docker-compose.yml
和公正的类型:
docker-compose up
docker-compose
没有预装泊坞窗上的Linux。说明安装它可以在找到泊坞窗,撰写网页。
节点elasticsearch1
监听localhost:9200
,而elasticsearch2
谈判elasticsearch1
在码头工人的网络。
这个例子还使用泊坞命名卷,被称为esdata1
和esdata2
将,如果不存在创建。
docker-compose.yml
:
version: '2'
services:
elasticsearch1:
image: docker.elastic.co/elasticsearch/elasticsearch:5.0.1
container_name: elasticsearch1
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
mem_limit: 1g
cap_add:
- IPC_LOCK
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- esnet
elasticsearch2:
image: docker.elastic.co/elasticsearch/elasticsearch:5.0.1
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "discovery.zen.ping.unicast.hosts=elasticsearch1"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
mem_limit: 1g
cap_add:
- IPC_LOCK
volumes:
- esdata2:/usr/share/elasticsearch/data
networks:
- esnet
volumes:
esdata1:
driver: local
esdata2:
driver: local
networks:
esnet:
driver: bridge
要停止集群类型docker-compose down
。数据量将继续存在,因此有可能使用相同的数据与重新开始集群docker-compose up
。要销毁集群和数据量只需键入docker-compose down -v
。
curl -u elastic http://127.0.0.1:9200/_cat/health
Enter host password for user 'elastic':
1472225929 15:38:49 docker-cluster green 2 2 4 2 0 0 0 0 - 100.0%
将消息记录到控制台和配置多克尔记录驾驶员进行处理。默认情况下,你可以访问日志docker logs
。
Elasticsearch从加载文件下它的配置/usr/share/elasticsearch/config/
。这些配置文件都记录在配置Elasticsearch和设置JVM系统属性。
图像提供了多种方式与传统的方法是提供自定义的文件,即配置Elasticsearch设置elasticsearch.yml
,但它也可以使用环境变量设置选项:
例如,要定义与群集名称docker run
可以传递-e "[cluster.name](http://cluster.name)=mynewclustername"
。双引号是必需的。
有限定之间的差的默认设置和正常设置。前者的前缀default.
并不能覆盖正常的设置,如果定义。
创建自定义配置文件并安装这个在图像上的相应文件。例如,绑定安装一个custom_elasticsearch.yml
带有docker run
可以通过参数来实现:
-v full_path_to / custom_elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
custom_elasticsearch.yml
应该是可读的UID:GID 1000:1000
在某些环境中,它可能会更有意义,以制备含有配置的自定义图像。一个Dockerfile
实现,这可能是简单的:
FROM docker.elastic.co/elasticsearch/elasticsearch:5.0.1
ADD elasticsearch.yml /usr/share/elasticsearch/config/
USER root
chown elasticsearch:elasticsearch config/elasticsearch.yml
USER elasticsearch
然后,您可以建立并尝试与类似的图像:
docker build --tag=elasticsearch-custom .
docker run -ti -v /usr/share/elasticsearch/data elasticsearch-custom
选项可以作为命令行选项来Elasticsearch过程覆盖默认命令为图像传递。例如:
docker run <various parameters> bin/elasticsearch -Ecluster.name=mynewclustername
我们收集了一些供生产使用的最佳实践。
以下提到的任何参数码头工人承担使用docker run
。
经由多克尔CLI正确设置的功能和ulimits是重要的。正如前面的例子中看出docker-compose.yml,需要下列选项:
--cap-add=IPC_LOCK --ulimit memlock=-1:-1 --ulimit nofile=65536:65536
确保bootstrap.memory_lock
被设置为true
如在“解释禁用交换 ”。
这可以通过任何的实现的配置方法,例如,通过设置与适当的环境变量-e "bootstrap.memory_lock=true"
。
形象暴露 TCP端口9200和9300。对于建议随机与发布的港口集群--publish-all
,除非你是钉住每个主机一个容器。
ES_JAVA_OPTS
环境变量设置堆大小,如使用16GB的使用-e ES_JAVA_OPTS="-Xms16g -Xmx16g"
与docker run
。此外,还建议设置内存限制的容器。[docker.elastic.co/elasticsearch/elasticsearch:5.0.1](http://docker.elastic.co/elasticsearch/elasticsearch:5.0.1)
。总是使用上结合的体积/usr/share/elasticsearch/data
,如图中生产例子,原因如下:
loop-lvm
模式。配置泊坞窗引擎使用直接LVM来代替。请考虑使用不同的集中你的日志记录的驱动程序。还要注意的是默认的JSON文件记录的驱动程序并不适合用于生产。
现在,您有一个测试环境Elasticsearch成立。开始之前严重的发展或进入生产与Elasticsearch,你需要做一些额外的设置: