О выходе из docker контейнера при docker -составе - PullRequest
1 голос
/ 27 мая 2020

Я пытаюсь использовать Elasticsearch с docker.

И вы можете увидеть руководство здесь -> https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

my docker - compose.yml ниже

version: '2.2'
services:
  elasticsearch1:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.7.0
    container_name: elasticsearch1
    environment:
      - node.name=master-node
      - cluster.name=es-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es-data01:/usr/share/elasticsearch/data
    ports:
      - 127.0.0.1:9200:9200
      - 127.0.0.1:9300:9300
    networks:
      - elastic
    stdin_open: true
    tty: true

  elasticsearch2:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.7.0
    container_name: elasticsearch2
    environment:
      - node.name=data-node1
      - cluster.name=es-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "discovery.zen.ping.unicast.hosts=elasticsearch1"
    ports:
      - 127.0.0.1:9301:9300
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es-data02:/usr/share/elasticsearch/data
    networks:
      - elastic
    stdin_open: true
    tty: true

volumes:
  es-data01:
    driver: local
  es-data02:
    driver: local

networks:
  elastic:
   # driver: bridge

проблема:

  1. Я не могу подключиться через curl -XGET localhost:9200
  2. docker контейнер автоматически завершает работу через несколько секунд

вы можете мне помочь?

ps: когда я пробую docker run, он работает. в чем разница между ними?

docker run -d -p 9200:9200 -p 9300:9300 --name elasticsearch -it --rm -v els:/usr/share/elasticsearch/data -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.7.0

Ответы [ 2 ]

1 голос
/ 27 мая 2020

Пожалуйста, проверьте журналы контейнера, используя docker logs <your stopped container-id>, здесь вы можете получить идентификатор контейнера, используя команду docker ps -a.

Также, пожалуйста, следуйте этому ответу SO и s и требования к памяти , которые помогут вам запустить Elasticsearch в docker. если это не помогает, предоставьте журналы, которые вы можете получить, как объяснялось ранее.

На основе комментариев добавление обновленных docker-compose

version: '2.2'
services:
  elasticsearch1:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.7.0
    container_name: elasticsearch1
    environment:
      - node.name=master-node
      - node.master=true
      - cluster.name=es-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "cluster.initial_master_nodes=master-node"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es-data01:/usr/share/elasticsearch/data
    ports:
      - 127.0.0.1:9200:9200
      - 127.0.0.1:9300:9300
    networks:
      - elastic
    stdin_open: true
    tty: true

  elasticsearch2:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.7.0
    container_name: elasticsearch2
    environment:
      - node.name=data-node1
      - node.master=false
      - cluster.name=es-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "cluster.initial_master_nodes=master-node"
    ports:
      - 127.0.0.1:9301:9300
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es-data02:/usr/share/elasticsearch/data
    networks:
      - elastic
    stdin_open: true
    tty: true

volumes:
  es-data01:
    driver: local
  es-data02:
    driver: local

networks:
  elastic:
   # driver: bridge
0 голосов
/ 27 мая 2020

Поскольку вы читаете эту статью, https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

стоит проверить второй раздел с ограничениями и ресурсами памяти, поскольку контейнеры в docker -compose закрываются из-за нехватки ресурсов .

...