elasticsearch docker容器之间的通信故障,elasticsearch,docker,elasticsearch,Docker" /> elasticsearch docker容器之间的通信故障,elasticsearch,docker,elasticsearch,Docker" />

elasticsearch docker容器之间的通信故障

elasticsearch docker容器之间的通信故障,elasticsearch,docker,elasticsearch,Docker,我正在运行一个“elasticsearch”容器。我可以卷曲容器并获得结果,但当我尝试从“web”容器中与容器通信时,它拒绝连接 docker-compose up curl localhost:9200 // works. curl docker-compose run web curl localhost:9200 // connection refused. docker compose.yml version: '2' services: web: build:

我正在运行一个“elasticsearch”容器。我可以卷曲容器并获得结果,但当我尝试从“web”容器中与容器通信时,它拒绝连接

docker-compose up
curl localhost:9200 // works.
curl docker-compose run web curl localhost:9200 // connection refused.
docker compose.yml

version: '2'
services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - .:/src
    ports:
      - "5000:5000"
    depends_on:
      - elasticsearch

  elasticsearch:
    image: elasticsearch:5.1.2
    ports:
      - "9200:9200"
Dockerfile

FROM python:3.5

ADD . /src
WORKDIR /src

RUN pip install -r requirements.txt

CMD python project/wsgi.py

您应该尝试卷曲
elasticsearch:9200
,而不是
localhost:9200
。主机名elasticsearch应位于web容器上的主机文件中

您不能从
web
容器中使用
localhost:9200
连接到
elasticsearch
容器。您可以定义链接或仅使用服务名称(默认情况下映射):

链接允许您定义额外的别名,通过这些别名可以从另一个服务访问服务。启用服务通信不需要它们——默认情况下,任何服务都可以以该服务的名称到达任何其他服务


另请参见

是否也要添加
Dockerfile
curl elasticsearch:9200