Как соединить два контейнера, которые не являются частью одной сети - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть сценарий, когда я запускаю свой первый контейнер, используя общий сокет Unix. Из-за того, как работает наша автоматизация, я не могу изменить параметры этой команды запуска docker (например, поэтому я не могу добавить пользовательскую сеть)

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock --entrypoint sh -it mytest:latest

внутри самого mytest контейнера я запускаю другой контейнер, например: nginx

/usr/bin/docker run --detach  --network host  --name test --publish "80:80" --publish "8080:80" nginx:latest

Мое требование - я хочу подключиться к nginx из моего самого контейнера. Я попытался подключиться, используя curl test:80, но это не сработало. Я попытался изменить --network на мост, но это не сработало. Я могу использовать IP-адрес хост-машины и получить доступ к nginx, но, поскольку IP-адрес хост-машины часто меняется, я также не могу жестко его кодировать.

Есть предложения о том, как подключить nginx из моего самого контейнера?

1 Ответ

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

Запустите ваш nginx контейнер с --network=host, и теперь вы можете подключиться к своему первому контейнеру с помощью localhost:exposed_public_port

...