Ограничить Доступ В Интернет-Контейнер Docker
У меня есть ситуация, чтобы ограничить доступ в интернет контейнера в сети балансировщика нагрузки. например, в том, что ниже picture
только container4 подключение к интернету; другие три общаться только с помощью container4 С внешним миром. Например, если container1 нужна поддержка smtp, он будет пересылать запрос smtp в container4 получить доступ.
нет контейнера, кроме container4 должен быть разрешен прямой доступ к интернету! Это должно применяться на уровне Docker.
Я считаю, что он будет настраиваться на создание сети docker, может кто-нибудь объяснить, как этого добиться?
2 ответов
- создание сети для доступа в интернет
docker network create --subnet=172.19.0.0 / 16 интернет
создание сети для блочного доступа в интернет
docker network create --internal --subnet 10.1.1.0 / 24 Нет-интернет
Если вы хотите подключить контейнер Docker в интернет
docker network connect internet container-name
Если вы хотите заблокировать интернет доступ
docker network connect no-internet container-name
Примечание
во внутренней сети мы не можем выставлять порты для подключения внешнего мира, пожалуйста, обратитесь к этому вопрос дополнительные детали
Как найти здесь, он получил это для работы с docker-compose:
version: '3'
services:
outgoing-wont-work:
image: alpine
networks:
- no-internet
command: ping -c 3 google.com # will crash
internal-will-work:
image: alpine
networks:
- no-internet
command: ping -c 3 internal-and-external
internal-and-external:
image: alpine
networks:
- no-internet
- internet
command: ping -c 3 google.com
networks:
no-internet:
driver: overlay
internal: true
internet:
driver: bridge