Монтирование каталога на именованный том в Docker - PullRequest
0 голосов
/ 01 июля 2018

Я хочу, чтобы исходный код моего проекта был доступен через именованный том (вместо использования метода bind mount). Но у меня возникает путаница, я не знаю, как мне смонтировать каталог хоста на именованный том. Итак, я определяю том в моем docker-compose.yml:

volumes:
   appData:

services:
   nginx:
      .
      .
      .
      volumes:
         - appData:/usr/share/data

Все работает, но как мне добавить свой хост-файл в указанный том? И когда.

1 Ответ

0 голосов
/ 01 июля 2018

К сожалению, не существует такого простого способа добиться этого, как сейчас. Документы Docker предлагают использовать в таких случаях bind mounts или сторонние плагины громкости. Не удалось увидеть план ближайшего будущего для реализации того же.

Однако вы можете сделать это альтернативным способом вручную -

  1. Создание тома (при использовании compose том создается с префиксом текущего каталога (PROJECTNAME)) -
    $ docker volume create ${PROJECTNAME}_appData

  2. Создать фиктивный контейнер, скопировать каталог хоста в указанный том и проверить его -

    $ docker container create --name dummy -v ${PROJECTNAME}_appData:/root alpine  #Create 
    $ docker cp ${PWD}/source_myfile.txt dummy:/root/myfile.txt     #copy 
    $ docker run -v ${PROJECTNAME}_appData:/root alpine ls -l /root #Verify 
    

Теперь, когда вы делаете docker-compose up -d, он пропустит создание тома, так как он уже существует.

PS - Я понимаю, что это не стандартное исправление, но это все, что я мог найти в качестве быстрого решения. Для постоянного исправления вы можете использовать сторонние плагины громкости.
https://docs.docker.com/engine/extend/legacy_plugins/

Получить более подробную информацию по этому вопросу -
Ссылка - https://github.com/moby/moby/issues/25245

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