Как Docker Container может получить доступ друг к другу - PullRequest
0 голосов
/ 23 июня 2018

В моем docker-compose у меня есть 2 контейнера.Как заставить эти 2 контейнера обращаться друг к другу, так как они установлены на одном хосте без контейнеров.Как они могут видеть друг друга и свои файловые системы

Ответы [ 2 ]

0 голосов
/ 24 июня 2018

Чтобы разрешить межконтейнерную связь, создайте общую мостовую сеть и поместите оба контейнера в одну и ту же сеть.Фаза сборки, предполагающая, что ничто не должно «общаться» друг с другом, не нуждается в переключателе --network.

docker network create jointops
docker build --network jointops -t srv1 /srv1
docker build --network jointops -t srv2 /srv2
docker run --network jointops -d -t srv1 
docker run --network jointops -d -t srv2 

Чтобы проверить, что оба компьютера находятся в одной сети, введите команду

docker network inspect jointops

Вы должны увидеть обе машины с распределением IP-адресов.

Хорошо ... так как они взаимодействуют?Мостовая сеть - jointops по умолчанию будет выполнять dns-разрешение

Так что если srv1 имеет что-то вроде

curl -c http://srv2/bla/bla/bla

Это будет решено правильно.

Относительно доступа к общим данным..

  • Не запускать 2 приложения в 1 контейнере

Вместо

  • создать том докера
  • запустить 2 отдельныхконтейнеры
    • каждый контейнер может подключаться к одному объему
0 голосов
/ 23 июня 2018

См. здесь для связи между контейнерами. Каждый контейнер инкапсулирует свое содержимое, поэтому используйте порты для связи, а не просто открывайте полную файловую систему одного контейнера другому.

Если обоим приложениям требуется доступ к одной и той же файловой системе, рассмотрите возможность запуска обоих в одном и том же контейнере. Это поддерживается.

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