Ограничить Доступ В Интернет-Контейнер Docker

У меня есть ситуация, чтобы ограничить доступ в интернет контейнера в сети балансировщика нагрузки. например, в том, что ниже picture

easy for your reference

только 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