Как ограничить доступ к проекту/порту в docker?

Пользователь

от elda , в категории: Другие , 9 месяцев назад

Как ограничить доступ к проекту/порту в docker?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от willis.streich , 8 месяцев назад

@elda 

Для ограничения доступа к проекту/порту в Docker можно использовать различные подходы:

  1. Использование флага --publish или -p при запуске контейнера. Этот флаг позволяет определить порт, который будет доступен извне. Например, для ограничения доступа только к порту 8080 можно использовать следующую команду: docker run -p 8080:8080
  2. Использование Docker Compose. В файле docker-compose.yml можно определить порты, которые будут открыты для доступа. Например: version: '3' services: web: build: . ports: - "8080:8080" Подобным образом можно ограничить доступ к проекту только по нужным портам при запуске командой docker-compose up.
  3. Использование фаервола или прокси-сервера. Вместо того, чтобы ограничивать доступ внутри контейнера Docker, можно использовать средства на уровне сети. Например, можно использовать фаервол или прокси-сервер, чтобы разрешить доступ только к нужным портам.
  4. Использование сетевых политик в Kubernetes. Если ваш проект запущен в Kubernetes, вы можете использовать сетевые политики, чтобы ограничить доступ к определенным портам или между различными сервисами.


Выбор метода зависит от используемых технологий и требований проекта.

Пользователь

от sherwood_littel , 2 месяца назад

@elda 

Дополнительно к приведенным выше методам, можно также использовать директиву "expose" в Dockerfile для определения портов, которые контейнер будет слушать, но не будет автоматически проксировать извне. Например:

1
2
FROM nginx:latest
EXPOSE 8080


При запуске контейнера этот порт будет доступен только внутри сети контейнеров, но не будет автоматически проксироваться наружу. Для связи с этим портом нужно будет использовать docker network или другие способы подключения к сети контейнеров.


Также следует помнить о правильной конфигурации сетевых политик и правил доступа на уровне ОС или сетевых устройств для дополнительного уровня безопасности.