Назад | Перейти на главную страницу

Docker, UFW и таблицы IP

во-первых, я как бы новичок в docker / linux / ufw и прочем!

Что я делаю:

Я создаю докер-контейнер, который предоставляет порт. в данном случае это 8080. Контейнер ведет себя так, как ожидалось.

Во-вторых, я хочу закрыть сервер. Поэтому я активирую UFW и разрешаю только 22, 80, 443.

Я ожидал, что не могу получить доступ к myserver: 8080, так как порт закрыт! Я понимаю, что докер использует iptables todo «материал» для маршрутизации к нему. На данный момент для меня это, к сожалению, просто «мелочь».

Итак, я создал файл json /etc/docker/daemon.json с этим содержанием:

{
        "iptables": true
}

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

Сначала казалось, что все работает нормально, пока я не заметил, что мой контейнер больше не может дотянуться. Кажется, что он не может разрешить dns.

Так что я понимаю, что играю с вещами, которые в настоящее время не совсем понимаю.

Что я пытаюсь сделать!

Я в основном хочу, чтобы контейнеры работали с закрытыми портами. Но контейнеры должны иметь доступ к http / https api снаружи. Как я могу этого добиться?

Я очень благодарен за любую помощь и поддержку в моем процессе обучения :)

Заранее спасибо.

С уважением, Ханнес

Если вы хотите открыть порт 8080 и привязать тот же порт на хосте к контейнеру, то вам нужно открыть порт 8080 на хосте Iptables. / ufw.

docker run -d --name container_name -p 8080:8080 Image_name:tag

Стандартный порт, используемый DNS, - UDP 53, поэтому вы должны разрешить выходной порт 53 в udf.

sudo udf allow out 53