Docker-compose - Как использовать второй интерфейс на хосте с 2 NIC

У меня есть проект cookiecutter django внутри экземпляра виртуальной машины, минимальный. Давайте назовем VM_D. Вот production.yml, который я пытаюсь запустить:

version: '2'

volumes:
  caddy: {}

services:
  django: &django
    build:
      context: .
      dockerfile: ./compose/production/django/Dockerfile
    depends_on:
      - redis
    env_file: .env
    command: /gunicorn.sh

  caddy:
    build:
      context: .
      dockerfile: ./compose/production/caddy/Dockerfile
    depends_on:
      - django
    volumes:
      - caddy:/root/.caddy
    env_file: .env
    ports:
      - "0.0.0.0:80:80"
      - "0.0.0.0:443:443"

  redis:
    image: redis:3.0

  celeryworker:
    <<: *django
    depends_on:
     - redis
    command: /start-celeryworker.sh

  celerybeat:
    <<: *django
    depends_on:
      - redis
    command: /start-celerybeat.sh

Кроме того, у меня есть другой экземпляр виртуальной машины с запущенным postgres, но не внутри докера. Давайте назовем это VM_P.

Эти две виртуальные машины связаны друг с другом (я могу пинговать их друг от друга и даже использовать psql удаленно из VM_D), а у postgres нет доступа к Интернету (по соображениям безопасности). Таким образом, в основном, VM_D имеет две карты (en0 для внешнего доступа к Интернету и en1 для соединения с VM_P), а VM_P имеет только одну карту (для соединения с VM_D).

Я хочу иметь доступ к VM_P из контейнера Django. Я понимаю, что должен подключить "мост" по умолчанию к карте en1, но пока не могу сделать это без изменения соединения с en0.

Пытается

  • Я пытался назначить сети "bridge" и "host" для django в production.yml и просто "bridge" для других, но не удалось сказать, что разрешена только одна "host" сеть.
  • Я пытался назначить только "хост" для контейнеров django, соединение работает с VM_P, но другие контейнеры больше не имели соединения с django.
  • Я проверил решение Pipework, но перед его использованием рекомендуется проверить "родной" способ.

Спасибо за помощь!

0 ответов

Другие вопросы по тегам