amazon-web-services - 使用 Docker 在 AWS EC2 上运行 Elasticsearch
问题描述
我正在尝试在 AWS EC2 实例上使用 Docker 运行 Elasticsearch,但是当它运行时,几秒钟后将停止,你们中的任何人都有任何经验可能是什么问题?
这是我的 Elasticsearch 配置docker-compose.yaml
:
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
另外,我sysctl -w vm.max_map_count=655360
在我的 AWS EC2 实例上做了
注意:我的 AWS EC2 实例是 Ubuntu 18.4
谢谢
解决方案
我不确定你的docker-compose.yaml
情况,因为你没有在你的 dockerfile 中提到这个,但我能够重现这个问题。我在我的 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 run 命令中添加后如下:
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
推荐阅读
- amazon-cloudwatch - 用于 splunk 的 AWS 批处理日志
- openssl - OpenSSL pkcs12 export fails when specifying CSR file
- php - SQL injection vulnerability with prepared statement that uses concatenation
- java - NewsAPI Exclude Sources or Websites
- jquery - 烧瓶 jquery 停止刷新
- javascript - 我的路线不会渲染
- jquery - jquery preventdefault not working on a tag
- javascript - 按变量在字符串中出现计数器
- navigation - 导航后榆树导航跳转
- javascript - 如何防止函数多次运行?- Javascript