Открытые порты окна докера не могут быть доступны извне хоста
У меня установлен Docker на хосте Windows 10 (под управлением контейнера Linux):
Client:
Version: 17.03.1-ce
API version: 1.27
Go version: go1.7.5
Git commit: c6d412e
Built: Tue Mar 28 00:40:02 2017
OS/Arch: windows/amd64
Server:
Version: 17.03.1-ce
API version: 1.27 (minimum version 1.12)
Go version: go1.7.5
Git commit: c6d412e
Built: Fri Mar 24 00:00:50 2017
OS/Arch: linux/amd64
Experimental: true
Я запустил простую команду, как это:
docker run -d -p 80:80 --name webserver nginx
С моего хоста я могу получить к нему доступ через http://localhost/, http://127.0.0.1/, http://192.168.1.151/ (eth0), http://172.24.1.16/ (eth1) и т. Д.
Однако извне хоста в подсетях 192.168.1.0/24 и 172.24.1.0/24 доступ к веб-серверу приводит к ошибкам тайм-аута.
2 ответа
Машина linux внутри докера уже настроена на выставление портов.
99 раз из 100 - это брандмауэр Windows. попробуйте отключить его полностью.
если это не сработает, возможно, добавьте --cap-add=NET_BIND_SERVICE
на ваш docker run
команда (через https://docs.docker.com/engine/reference/run/).
Мне пришлось разрешить%ProgramFiles%\Docker\Docker\resources\vpnkit.exe через брандмауэр Windows.