@LionG

Как в docker compose создать сеть привязанную к vlan интерфейсу?

Есть несколько vlan интерфейсов: eth0.10, eth0.20, eth0.30.

У каждой vlan свой gateway с разными внешними ip.

Нужно разным сервисам в docker compose выдать разные сети привязанные к vlan что бы у каждого сервиса был свой gateway от vlan. Покажите пример как это должно быть настроено на примере 2х nginx.

Нужен именно gateway (что бы исходящие запросы из контейнера шли через заданный vlan), проброс портов работает по ports: "10.10.10.2:80:80", где 10.10.10.2 адрес на vlan интерфейсе.
  • Вопрос задан
  • 1012 просмотров
Решения вопроса 2
@q2digger
никого не трогаю, починяю примус
Надо использовать сетевой драйвер macvlan для докера. Вот тут очень хороший пример
https://github.com/sarunas-zilinskas/docker-compos...

---
version: '2.4'
services:

  portainer:
    image: portainer/portainer
    container_name: portainer
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /path/to/data:/data 
    ports:
      - 8000:8000
      - 9000:9000
    networks:
      vlan:
        ipv4_address: 192.168.0.60

networks:
  dockervlan:
    #This interface should be defined as using null driver. Do not remove it.
    driver: null
    driver_opts:
      parent: eth0
    ipam:
      config:
        - subnet: "192.168.0.0/24"
          ip_range: "192.168.0.64/26"
          gateway: "192.168.0.1"
  dockervlan:
    #This is the interface which is used for containers networking
    driver: macvlan
    driver_opts:
      parent: eth0
    ipam:
      config:
        - subnet: "192.168.0.0/24"
          ip_range: "192.168.0.64/26"
          gateway: "192.168.0.1"
Ответ написан
@LionG Автор вопроса
Делал так. Были проблемы с dns на vlan и брался gateway с default так что это не жесткое указание и в случае проблем на vlan контейнер выйдет через default (его конечно можно не указывать и тогда контейнер будет работать только с vlan но думаю при связи между контейнерами трафик будет ходить через локалку).
Еще при таком конфиге контейнер получает собственный адрес в сети vlan, в моем случае это лишнее тк мне нужен только gateway.

version: '3.3'

services:
  node:
    image: node:latest
    volumes:
      - ./app:/app
    networks:
      myvlan:
        ipv4_address: 10.10.10.4
      default:
    ports:
      - "80:80" #проброс нужен для default, по vlan контейнер как отдельное устройство
    command: "node /app/index.js"

networks:
  default:
  myvlan:
    driver: macvlan
    driver_opts:
      parent: eth0.10
    ipam:
      config:
        - subnet: 10.10.10.0/24
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы