コンテナ上のESでlocalhostへのアクセスできない

Dockerfileの中の記述が気になります。

ADD config/elasticsearch.yml /usr/share/elasticsearch-7-4/config/
RUN chown elasticsearch:elasticsearch config/elasticsearch.yml

Dockerコンテナ内に設定ファイルをホストからコピーして、所有者を変更する部分だと思いますが、
正しくは、/usr/share/elasticsearch/configにコピーすべきではないでしょうか?

また、cluster-nameやhttp.portの指定であれば、コンテナの環境変数に指定することでも設定ができます。

docker-composeであれば、このような感じになります。

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.4.0
    container_name: elasticsearch
    environment:
      - cluster.name=docker-cluster
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - http.port=9999
  (以下略)

ご参考になれば幸いです。

1 Like