Создайте общий ресурс NFS между контейнерами, описанными в разных файлах docker-compose и работающими на разных машинах docker - PullRequest
0 голосов
/ 24 октября 2018

У меня есть следующие настройки на моем компьютере:

  • Одна docker-machine настройка для контейнеров моего Проекта A. У меня есть файл docker-compose.yml, описывающий, какие контейнеры должны бытьbuild, тома для монтирования и т. д. и Dockerfile для каждого контейнера.
  • Еще одна docker-machine настройка для контейнеров моего проекта B с docker-compose.yml и Dockerfile s.

Теперь я хочу сделать общий ресурс NFS между контейнером в моем проекте A (назовем его контейнером 1) и другим контейнером в моем проекте B (контейнер 2).

Я проверял ссылки вроде this , но, насколько я понимаю, это для контейнеров в той же сети.В этом случае мой контейнер 1 и контейнер 2 не находятся в одной сети и находятся на разных компьютерах.

Я не указал никакой сетевой опции при запуске docker-machine или в моих docker-compose.yml файлах (не считая портов, которые используют мои приложения).

Как я могу разделить NFS между этими двумя контейнерами?

1 Ответ

0 голосов
/ 24 октября 2018

Команда 'docker-compose up' создает сеть по имени [projectname] _default ", и все службы, указанные в файле docker-compose.yml, будут сопоставлены с созданной сетью.

Например, предположим, что ваше приложение находится в каталоге myapp, а ваш docker-compose.yml выглядит так:

 version: "3"
 services:
    web:
      build: .
      ports:
        - "8000:8000"
    db:
      image: postgres
      ports:
         - "8001:5432"

Когда вы запускаете docker-compose up, происходит следующее:

 1) A network called myapp_default is created.
 2) A container is created using web’s configuration. It joins the network myapp_default under the name web.
 3) A container is created using db’s configuration. It joins the network myapp_default under the name db.

и если вы хотите, чтобы другая служба использовала существующую созданную докерную сеть, вам необходимо определить это с помощью опции 'external'

Использовать уже существующую сеть

Если вы хотите, чтобы ваши контейнеры присоединились к уже существующей сети, используйте внешний параметр:

networks:
   default:
     external:
       name: my-pre-existing-network

Вместо того, чтобы пытаться создать сеть с именем [projectname] _default, Compose ищет сеть с именем my-pre-существующей сети и подключите к ней контейнеры вашего приложения.

источник: https://docs.docker.com/compose/networking/#use-a-pre-existing-network

...