使用 Docker 在 AWS EC2 上运行 Elasticsearch



我正在尝试在 AWS EC2 实例上使用 Docker 运行 Elasticsearch,但是当它运行时,几秒钟后将停止,你们中的任何人都经历过问题可能是什么?

这是我在docker-compose.yaml中的 Elasticsearch 配置:

elasticsearch:
build:
context: ./elasticsearch
args:
- ELK_VERSION=${ELK_VERSION}
volumes:
- elasticsearch:/usr/share/elasticsearch/data
environment:
- cluster.name=laradock-cluster
- node.name=laradock-node
- bootstrap.memory_lock=true
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms7g -Xmx7g"
- xpack.security.enabled=false
- xpack.monitoring.enabled=false
- xpack.watcher.enabled=false
- cluster.initial_master_nodes=laradock-node
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
ports:
- "${ELASTICSEARCH_HOST_HTTP_PORT}:9200"
- "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300"
depends_on:
- php-fpm
networks:
- frontend
- backend

这是我的Dockerfile

FROM docker.elastic.co/elasticsearch/elasticsearch:7.5.1
RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch discovery-ec2
EXPOSE 9200 9300

此外,我在 AWS EC2 实例上sysctl -w vm.max_map_count=655360

注意:我的 AWS EC2 实例是 Ubuntu 18.4

谢谢

我不确定您的docker-compose.yaml,因为您没有在 docker 文件中引用它,但我能够重现该问题。我在我的 AWS 账户中启动了相同的 ubuntu 18.4,并使用您的dockerfile使用以下命令启动 ES docker 容器:

docker build --tag=elasticsearch-custom .
docker run -ti -v /usr/share/elasticsearch/data elasticsearch-custom

我的 docker 容器在启动后也停止了,如下所示:

ubuntu@ip-172-31-32-95:~$ docker ps -a
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS                      PORTS               NAMES
03cde4a19389        elasticsearch-custom   "/usr/local/bin/dock…"   33 seconds ago      Exited (78) 6 seconds ago                       mystifying_napier 

在控制台上检查日志时,启动 docker 时,我发现以下错误:

错误:[1] 引导程序检查失败 [1]:默认发现设置 不适合生产使用;至少一个 [discovery.seed_hosts,discovery.seed_providers, 必须配置 cluster.initial_master_nodes]

这是众所周知的错误,只需将-e "discovery.type=single-node"添加到docker run命令即可轻松解决。在 docker 运行命令中添加此命令后,如下所示:

docker run -e "discovery.type=single-node" -ti -v /usr/share/elasticsearch/data elasticsearch-custom

它的运行良好,如下所示:

CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                NAMES
191fc3dceb5a        elasticsearch-custom   "/usr/local/bin/dock…"   8 minutes ago       Up 8 minutes        9200/tcp, 9300/tcp   recursing_elgamal

相关内容

最新更新