Использовать Docker-контейнер в качестве сетевого шлюза - PullRequest
0 голосов
/ 01 октября 2018

Я хочу настроить шлюз для подключения двух контейнеров.Ниже приведен пример составного файла, который создает три контейнера - test_client, test_server и прокси.Прокси-сервер должен действовать как шлюз по умолчанию для всего трафика к test_server от test_client.Я использую формат файла компоновки v2, поскольку конфигурации шлюза IPAM не поддерживаются в v3.

version: "2"
services:
  proxy:
    build: .
    cap_add:
      - NET_ADMIN
    expose:
      - 8080
      - 80
      - 443
    networks:
      client_network:
          ipv4_address: '192.168.0.5'
      server_network: null
    stdin_open: true
    tty: true
  test_server:
    build: ./test_server
    expose:
      - 8000
    networks:
      - server_network
  test_client:
    build: ./test_client
    networks:
      - client_network
    stdin_open: true
    tty: true

networks:
  client_network:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: "192.168.0.0/24"
          gateway: "192.168.0.5"
  server_network:
    driver: bridge

Когда я запускаю docker-compose up, я получаю следующую ошибку:

ERROR: for 28e458cec9ac_network_proxy_1  b'user specified IP address is supported only when connecting to networks with user configured subnets'

I 'Прочитайте следующие ресурсы:

SO: контейнер докера в качестве шлюза между двумя мостами докера Форумы Docker

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

...