Не может свернуться между двумя контейнерами - PullRequest
0 голосов
/ 24 ноября 2018

У меня проблемы с установкой связи между двумя контейнерами.У меня есть 2 отдельных docker-compose.yml файла в разных проектах.

Первый:

version: '2'

services:
  myapp:
    tty: true
    image: 'bitnami/laravel:latest'
    labels:
      kompose.service.type: nodeport
    ports:
      - 3000:3000
    expose:
      - "3000"
    volumes:
      - ./:/app

networks:
  default:
    external:
      name: "laravel"

И второй:

  app:
    build:
      context: .
      dockerfile: ./docker/app/Dockerfile
    image: bla/bla
    container_name: my-app
    ports:
      - "80:80"
      - "443:443"

networks:
  default:
    external:
      name: "laravel"

При переходе в браузер или созданиизавиток от терминала до localhost:3000 Я получаю ответ обратно.Если я войду в контейнер myapp, я тоже могу свернуться (что на самом деле не странно).

Но я не могу сделать так, чтобы я вошел в контейнер app и получил ответ.Вместо этого я получаю:

curl: (7) Не удалось подключиться к локальному порту 3000: соединение отклонено

1 Ответ

0 голосов
/ 24 ноября 2018

Когда вы обращаетесь к localhost в контейнере, вы обращаетесь к самому контейнеру, а не к хост-машине.

Например, если вы хотите получить доступ к порту на хост-машине, есть некоторые обсуждения по этому поводу: https://forums.docker.com/t/accessing-host-machine-from-within-docker-container/14248/5

Но вам нужно получить доступ к другому контейнеру на том же хосте.Обычно это плохая практика с использованием localhost, потому что в будущем контейнер может быть перемещен на другой хост, вы забудете об этом, и система сломается.

Если вы все еще хотите это сделать, вам нужно создать сетьМосты в Docker.

Вы можете найти документацию, связанную с мостами: https://docs.docker.com/network/network-tutorial-standalone/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...