Как разделить каталог между одноуровневыми (DooD) docker контейнерами? - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь создать контейнер для контроллера, способного порождать дочерние контейнеры DooD:

[root@host]$ docker run -v /var/run/docker.sock:/var/run/docker.sock controller ...

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

[root@controller]$ docker run -v /tmp/files:/home/worker/workspace worker ...

К сожалению, приведенный выше код не работает, потому что каталог /home/worker/workspace рабочего фактически сопоставлен с /tmp/files из HOST , а не контроллер.

Контейнер контроллера сам по себе не хранит данных, поэтому не имеет явного сопоставления томов с хоста.

Любой способ совместного использования каталога /tmp/files из контейнера контроллера в контейнер родственного работника?

Ответы [ 2 ]

1 голос
/ 18 июня 2020

Вы можете использовать именованный том.

Просто используйте

[root@host]$ docker run -v /var/run/docker.sock:/var/run/docker.sock -v my_named_volume:/tmp/files controller ...

и

[root@controller]$ docker run -v my_named_volume:/home/worker/workspace worker ...

Угадайте, что это должно помочь.

0 голосов
/ 18 июня 2020

почему бы не сделать службы с таким же монтированием тома, используя docker compose

, это может быть что-то вроде

version: "3.7"
services:
    controller:
        container_name: controller
        build:
            context: ./demo
            dockerfile: Dockerfile
        tty: true
        volumes:
            - "./demo:/home/controller/workspace"
        ports:
            - 8080:8080

    worker:
        container_name: worker
        build:
            context: ./demo
            dockerfile: Dockerfile
        tty: true
        volumes:
            - "./demo:/home/worker/workspace"
        ports:
            - 8081:8080

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...