Как подключиться к хосту docker из контейнера в Windows 10 (Docker для Windows)
На каком IP-адресе контейнер-докер может подключиться к своему хосту на Docker для Windows (в Windows 10)? Как вы находите этот IP-адрес?
Пример: у вас есть служба, работающая на порту 1234 на вашем компьютере с Windows 10. Программа внутри вашего контейнера должна получить доступ к этой службе. Какой IP-адрес должен использовать программа для подключения к хосту?
Ответы
Ответ 1
Короткий ответ: в большинстве случаев вам понадобится 10.0.75.1.
В Docker для Windows контейнер взаимодействует через адаптер vEthernet, называемый DockerNAT. Чтобы найти его сведения, откройте "Командная строка" и введите
ipconfig
Найдите запись, которая выглядит как
Ethernet adapter vEthernet (DockerNAT):
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::fd29:297:4583:3ad4%4
IPv4 Address. . . . . . . . . . . : 10.0.75.1
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
IP-адрес справа от IPv4 Address
- тот, который вам нужен.
Примечание. Убедитесь, что служба разрешает подключения извне вашего хоста. Что касается этой услуги, ваш контейнер для докеров - это другая машина. Также убедитесь, что брандмауэр Windows позволяет осуществлять связь с службой и из нее.
Ответ 2
Один из параметров, который позволяет вам подключаться из контейнера в хост, - это запустить ваш контейнер с параметром
--net="host"
Пример:
docker run -it --net="host" container_name
Затем из контейнера вы можете подключиться к сервису на хосте, используя:
localhost:port
Но в этом случае вы не сможете связать больше контейнеров с помощью параметра --link
.
Подробнее об этой теме:
http://phillbarber.blogspot.sk/2015/02/connect-docker-to-service-on-parent-host.html