У меня есть 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