LINUX.ORG.RU
ФорумAdmin

Доступ к портам контейнера

 , ,


0

1

Может, делаю что-то не так, но не могу подключиться к портам контейнера с хоста. Подключения типа http://172.17.0.2:8081 выдают таймаут, на пинги контейнер не отвечает. Если прокинуть порт и подключаться к локалхосту, всё нормально. Нужно что-то дополнительно прописывать, чтобы работала сеть между хостом и контейнерами?

Docker Engine 19.03.12 (macOS)

★★★★★

Ответ на: комментарий от Demacr

И как получить доступ к этим адресам? Где-то ведь это настраивается?

CYB3R ★★★★★
() автор топика

https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-socket-option

Добавь опции сокета в свой systemd юнит. Потом можешь подключаться прямо по локальному адресу.

UPD: я не на то ответил.

В общем когда создаёшь контейнер указываешь порт контейнера и хоста через -p 8080:8080.

Artamudo ★★★★
()
Последнее исправление: Artamudo (всего исправлений: 1)
Ответ на: комментарий от Artamudo

Я же написал:

Если прокинуть порт и подключаться к локалхосту, всё нормально.

Меня не это интересует, а настроить сеть таким образом, чтобы можно быть с контейнером в одной сети.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от Demacr

Вот именно в этом и мой вопрос. Или можно как-то заставить контейнер получить IP от того же DHCP-сервера, что и мой хост?

CYB3R ★★★★★
() автор топика

Я думаю надо использовать bridge сеть и включить форвардинг на хосте sysctl net.ipv4.conf.all.forwarding=1, в документации еще пишут нужно в файрвол добавить разрешение sudo iptables -P FORWARD ACCEPT. Тогда хост будет выступать как gateway между LAN (где твой DHCP сервер) и виртуальной сеткой 172.*.

Хотя… на DHCP сервере не будет же в таблице маршуртов записи типа 172.0.0.0/8 via <ip твоего хоста> потому он не сможет ответить. Так что я написал чушь.

Aber ★★★★★
()
Последнее исправление: Aber (всего исправлений: 1)

используй -net host
если не хочешь разделять вручную

smilessss ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.