Docker и netstat: netstat не показывает порты, открытые контейнерами Docker

Я открываю док-порты моих контроллеров на хост-машине с чем-то вроде

docker run -p 80:80 ...

затем я пытаюсь отобразить все прослушивающие порты в целях отладки сnetstat например.:

netstat -at

Странно то, что netstat не будет отображать мои док-контейнеры с открытыми портами, хотя они слушают и отвечают браузеру.

Как я могу сделатьnetstat показать эти открытые порты?

ОБНОВИТЬ: Я запускаю это на Debian 8, Джесси. Вот что я делаю:

docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                                      NAMES
9dfa08bab50d        workflows-nginx     "/bin/sh -c '/usr/sbi"   2 hours ago         Up 2 hours                  0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   workflows-nginx
d0b0c3f90f13        workflows-django    "/bin/sh -c 'python /"   7 hours ago         Up 3 hours                  0.0.0.0:8000->8000/tcp                     workflows-django
99a857c92533        workflows-db        "/docker-entrypoint.s"   7 hours ago         Up 3 hours                  5432/tcp                                   workflows-db

Здесь докер сообщает, что порты контейнера перенаправлены на хост. Более того, если я остановлюсьworkflows-nginx контейнер перестает отвечать на запросы браузера по http (порт 80). Если я начну снова, он снова начнет отвечать.

Вот выводsudo netstat -at | less:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 *:ssh                   *:*                     LISTEN     
tcp        0      0 localhost:ipp           *:*                     LISTEN     
tcp        0      0 *:15672                 *:*                     LISTEN     
tcp        0      0 *:postgresql            *:*                     LISTEN     
tcp        0      0 localhost:smtp          *:*                     LISTEN     
tcp        0      0 *:25672                 *:*                     LISTEN     
tcp        0      0 *:48142                 *:*                     LISTEN     
tcp        0      0 *:sunrpc                *:*                     LISTEN     
tcp        0      0 *:epmd                  *:*                     LISTEN     
tcp        0      0 bob-acer:34866          104.16.33.249:http      ESTABLISHED
tcp        0      0 bob-acer:42380          stackoverflow.com:https ESTABLISHED
tcp        0      0 bob-acer:42543          stackoverflow.com:https ESTABLISHED
tcp        0      0 bob-acer:42525          stackoverflow.com:https ESTABLISHED
tcp        0      0 bob-acer:44076          stackoverflow.com:https ESTABLISHED
tcp        0      0 bob-acer:42944          stackoverflow.com:https ESTABLISHED
tcp        0      0 localhost:epmd          localhost:50831         ESTABLISHED
tcp        0      0 bob-acer:42655          stackoverflow.com:https ESTABLISHED
tcp        0      0 bob-acer:42384          stackoverflow.com:https ESTABLISHED
tcp        0      0 bob-acer:44626          stackoverflow.com:https ESTABLISHED
tcp        0      0 bob-acer:42390          stackoverflow.com:https ESTABLISHED
tcp        0      0 localhost:50831         localhost:epmd          ESTABLISHED
tcp        0      0 bob-acer:48301          c2.52.c0ad.ip4.st:https ESTABLISHED
tcp        0      0 bob-acer:42151          stackoverflow.com:https ESTABLISHED
tcp        0      0 bob-acer:42205          stackoverflow.com:https ESTABLISHED
tcp        0      0 bob-acer:42539          stackoverflow.com:https ESTABLISHED
tcp        0      0 bob-acer:44737          stackoverflow.com:https ESTABLISHED
tcp        0      0 bob-acer:39648          77.94.164.251:https     ESTABLISHED
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
tcp6       0      0 localhost:ipp           [::]:*                  LISTEN     
tcp6       0      0 [::]:postgresql         [::]:*                  LISTEN     
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN     
tcp6       0      0 [::]:44794              [::]:*                  LISTEN     
tcp6       0      0 [::]:8000               [::]:*                  LISTEN     
tcp6       0      0 [::]:amqp               [::]:*                  LISTEN     
tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN     
tcp6       1      0 localhost:58497         localhost:ipp           CLOSE_WAIT

Как видите, ни порт 80, ни порт 443 не сообщаются. Порт 8000workflows-django почему-то открывается на интерфейсе IPv6. Более того, я забыл отключить postgres на хост-машине, но они не конфликтуют с контейнером postgres.workflows-db.

Все работает на моем локальном ноутбуке, так что я думаю, что не может быть никакой путаницы с хозяином.

Моя версия докера:

docker --version
Docker version 1.10.3, build 20f81dd

ОТВЕТ: Это связано с параметром docker EXPOSE. Если вы напишите эту строку в своем файле Docker и запустите контейнер с параметром -p, порт будет виден в netstat. Если вы используете -p, но не пишете EXPOSE, ваш порт не будет указан netstat.

Ответы на вопрос(1)

Ваш ответ на вопрос