У меня есть docker-compose.yml с несколькими облачными микросервисами Spring, выполняющимися на моей локальной машине. Но я хочу, чтобы микросервис выполнялся на локальном цепочке, а не в докере. Этот микросервис может получить доступ к внешнему IP-адресу докера, но не может получить доступ к внутренним IP-адресам, зарегистрированным «eureka». Я пытаюсь (безуспешно) развернуть докер OpenVPN. ¿Какое лучшее решение для работы только с одним микросервисом, разрабатываемым вне сети докеров?
Возможность подключения из микросервиса на хосте за пределами сети docker-compose
Ответы (1)
К сожалению, docker-compose — это инструмент, который можно использовать только с докером. Если вам просто нужно запустить микросервисное приложение и управлять им, вы можете найти другие решения, такие как супервизор и т. д.
Но если я правильно понял ваш случай, то у вас есть локальная машина (с IP, например, 192.168.100.1) и работающий микросервис в докере (с собственным IP-адресом сети докера, например 172.17.0.2). На локальном компьютере у вас также запущена другая служба, которая прослушивает, например, порт 1234. И вам нужна служба доступа, которая прослушивает 192.168.100.1:1234 из док-контейнера с внутренним IP-адресом 172.17.0.2. В этом случае вам просто нужно запустить свой микросервис в докере и использовать раскрытие порта (https://docs.docker.com/compose/compose-file/#ports). В этом случае вы можете запустить свой док-контейнер, открыть порт 1234, например, для того же порта 1234 на хосте, и все. Весь трафик между 192.168.100.1:1234 и 172.17.0.2:1234 будет прозрачно передаваться, поэтому внутри вашего работающего контейнера вы можете использовать целевой IP-адрес докера (часто это 172.17.0.1, вы можете проверить фактическое значение, запустив ifconfig на вашем локальном компьютере и проверьте сетевой интерфейс docker0) и порт 1234
docker0 Link encap:Ethernet HWaddr 02:42:B1:B5:7B:53
inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0