Доступ к локальной сети и сети Docker с помощью docker-compose - PullRequest
0 голосов
/ 04 июля 2019

У меня есть две разные службы, работающие в одном файле docker-compose. Я говорю с каждым сервисом, ссылаясь на название сервиса контейнеров.

Теперь я хочу, чтобы мой контейнер A также обращался к localhost. Для этого, когда я добавил конфигурацию 'network_mode = host', но это создает ошибку, в которой говорится, что контейнер A не может общаться с контейнером B.

version: '2'

services:
  rocketchat:
    image: myimage
    environment:
      - MONGO_URL=mongodb://mongo:27017/dbname
    depends_on:
      - mongo
    ports:
      - 3000:3000
    network_mode: host

  mongo:
    image: mongo:3.2
    ports:
      - 27017:27017

Для каждого файла compose docker-compose создает сеть, поэтому в этом случае я должен вручную назначить контейнеры и для выделенной сети? Или есть ли обходной путь для доступа к обеим сетям?

1 Ответ

1 голос
/ 04 июля 2019

попробуйте добавить links:

version: '2'

services:
  rocketchat:
    image: myimage
    environment:
      - MONGO_URL=mongodb://mongo:27017/dbname
    depends_on:
      - mongo
    ports:
      - 3000:3000
    links:
      - mongo
    #network_mode: host

  mongo:
    image: mongo:3.2
    ports:
      - 27017:27017

и вам не нужно network_mode: host, если вы используете ссылки

РЕДАКТИРОВАТЬ - Другое решение:

version: '2'

services:
  rocketchat:
    image: myimage
    environment:
      - MONGO_URL=mongodb://localhost:27017/dbname
    depends_on:
      - mongo
    ports:
      - 3000:3000
    network_mode: host

  mongo:
    image: mongo:3.2
    ports:
      - 27017:27017
    network_mode: host
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...