Контейнеры докеров недоступны извне хоста Ubuntu?

У меня есть докер-контейнер с опубликованным портом 3001. Я могу подключиться к докер-контейнеру, выполнив ping-запрос с хоста

$ netcat -vzn 0.0.0.0 3001
Connection to 0.0.0.0 3001 port [tcp/*] succeeded!

Но извне хоста я получаю отказ в соединении.

$ netcat -vzn 10.0.0.154 3001
netcat: connect to 10.0.0.154 port 3001 (tcp) failed: Connection refused

Docker-контейнер опубликовал порты:

PORTS
0.0.0.0:3001->3001/tcp, :::3001->3001/tcp

Брандмауэр хоста отключен.

Хост - это физический сервер, работающий в Ubuntu.

Контейнеры недоступны, даже если они запущены в сети хостов напрямую ...

docker run -it -d -network=host ...

Я прочитал всю документацию, и по каждой инструкции контейнеры ДОЛЖНЫ быть доступны через hostIp: порт с этой текущей настройкой. Я не уверен, что мне еще чего-то не хватает в инструкциях Docker, или что-то странное происходит с самой ОС Ubuntu Server, которая отказывается от этих подключений.

Есть идеи? Спасибо!

0
задан 21 May 2021 в 07:05

2 ответа

Итак, я понял, что происходит ...

Хотя на самом деле порты докеров были правильно открыты на хосте, приложение внутри контейнера, которое, как предполагается, слушает эти порты, заняло больше времени, чем я думал, чтобы запустить . Через некоторое время приложение внутри контейнера докеров, наконец, было запущено, и порты стали доступны извне хоста.

0
ответ дан 28 July 2021 в 11:37

У меня точно такая же проблема, и я не уверен на 100%, но в Ubuntu все еще есть некоторые правила, которые могут блокировать порты, называемые iptables. С ] nmap localhost вы можете узнать, какие порты открыты.

0
ответ дан 28 July 2021 в 11:37

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

Похожие вопросы: