【问题标题】:Run Elasticsearch on AWS EC2 with Docker使用 Docker 在 AWS EC2 上运行 Elasticsearch
【发布时间】:2020-05-29 04:14:12
【问题描述】:

我正在尝试在 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

谢谢

【问题讨论】:

  • 您使用的是哪个版本的 Elasticsearch,请分享日志,显示将能够提供帮助
  • 我在Dockerfile的问题中提到了7.5.1
  • 期待日志

标签: amazon-web-services docker elasticsearch amazon-ec2


【解决方案1】:

我不确定您的 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] 必须配置

这是众所周知的错误,只需在 docker run 命令中添加-e "discovery.type=single-node" 即可轻松解决。在 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

【讨论】:

    猜你喜欢
    • 2020-09-02
    • 2020-09-07
    • 2017-12-17
    • 2018-01-23
    • 2021-11-01
    • 2019-11-10
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多