Docker не будет выставлять порты при использовании внутренней сети - PullRequest
0 голосов
/ 08 мая 2019

Когда я настраиваю внутреннюю сеть в моем файле docker-compose, отображение портов с помощью опции ports больше не будет работать.

Давайте рассмотримследующий docker-compose.yml файл:

version: '3'
services:
  registry:
    image: registry:2
    ports:
      - "127.0.0.1:5000:5000"
    networks: 
      - internal
networks: 
  internal:
    internal: true

Когда я запускаю его с internal: false, все в порядке, и порт 5000 будет сопоставлен с хостом.Когда я запускаю его с параметром internal: true, порт больше не отображается:

$ docker ps
CONTAINER ID        IMAGE                                   COMMAND                  CREATED             STATUS              PORTS               NAMES
de6412f692e7        registry:2                              "/entrypoint.sh /etc…"   10 minutes ago      Up 10 minutes                           registry_registry_1

Однако я все равно могу получить доступ к порту через внутреннюю сеть с хоста:

$ docker-compose exec registry ip addr
[...]
    inet 172.23.0.2/16 [...]
$ curl -v 172.23.0.2:5000
[...]
> GET / HTTP/1.1
[...]
< HTTP/1.1 200 OK
[...]

Так что не должно быть технической причины, по которой docker-proxy не может прокси порт контейнера передать хосту или я что-то пропустил?

...