Docker Compose использовать как хост, так и мостовую сеть - PullRequest
0 голосов
/ 02 апреля 2020

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

Чтобы разрешить изображениям взаимодействовать друг с другом в мостовой сети по умолчанию, мне не нужно ничего делать:

version: '3.4'
services: 
  hello:
   image: hello-world

  world:
    image: hello-world

С помощью службы spe c, hello выше мог бы ссылаться на сервис world, используя DNS-имя world

Если бы я хотел, чтобы сервис hello мог взаимодействовать с сетью моего хост-компьютера, я мог бы добавить network_mode: host к спецификации c.

version: '3.4'
services: 
  hello:
   image: hello-world
   network_mode: host
  world:
    image: hello-world

Это позволяет службе hello получить доступ к сети моего хост-компьютера, но больше не может получить доступ к world через встроенный DNS Comose. Как я могу выполнить sh оба?

Я пытался создать собственную сеть, но пользовательские сети не могут использовать драйвер хоста, и я не могу использовать network_mode в сочетании с networks:

Это не работает:

version: '3.4'
services: 
  hello:
   image: hello-world
   network_mode: host
   networks:
   - bridge
  world:
    image: hello-world
    networks:
    - bridge

networks:
  test:
    driver: bridge
$ docker-compose up
ERROR: 'network_mode' and 'networks' cannot be combined

1 Ответ

0 голосов
/ 02 апреля 2020

Если они оба находятся в вашей хост-сети, они могут общаться друг с другом так же, как обычные приложения, разговаривают друг с другом: через localhost. Так что вам совсем не нужен мост.

...