Я использую Docker и хотел бы запустить контейнер, который использует данный публичный порт. Этот порт должен быть защищен, пользователи должны быть аутентифицированы с одним именем пользователя/паролем. У Docker есть некоторые функции для этой цели?Защита паролем паролем для контейнера
ответ
Вы можете запустить другой контейнер (как Nginx или Apache один), который будет отвечать за:
- аутентификации
- реверс-прокси первого контейнерного порта
Таким образом, первый порт контейнера (EXPOSE
в файле Docker) не обязательно должен быть сопоставлен с хостом: к нему напрямую обращается второй контейнер, запускается с помощью --link
option
Есть ли парные контейнеры для тестирования? Я бы хотел попробовать, потому что этот метод немного неясен для меня. –
@ mum007 Я выполняю аутентификацию в своих контейнерах apache-ldap: https://github.com/VonC/b2d/blob/f9890cb6e1ee14842b8be2dd66a754550db793a9/apache/env.conf#L109-L119, на основе ссылки на контейнер ldap (https : //github.com/VonC/b2d/blob/f9890cb6e1ee14842b8be2dd66a754550db793a9/apache/run#L61-L65), который я запускаю сначала: https://github.com/VonC/b2d/blob/f9890cb6e1ee14842b8be2dd66a754550db793a9/apache/run#L61- L65 – VonC
Возможно, вы можете добавить порты в свой контейнер? https://en.wikipedia.org/wiki/Port_knocking – user2915097
Рассматривали ли вы защиту порта с использованием сертификатов SSL и клиентов? Лучший и более стандартный подход к обеспечению докеров. Смотрите: https://docs.docker.com/articles/https/ –