Открытые порты окна докера не могут быть доступны извне хоста

У меня установлен 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.

Другие вопросы по тегам