Docker -состав и объемы - PullRequest
       0

Docker -состав и объемы

0 голосов
/ 12 апреля 2020

Когда я создаю том вручную и включаю его в docker -compose, если я не ставлю тег тома с префиксом docker_, docker compose создает новый том с префиксом docker_ Например: я создаю том с :

docker volume create myvolume

Это видно в / var / lib / docker / volume / myvolume. Я включаю его в мой docker -компонентный файл yaml, но когда я запускаю docker -компонентный, создается новый том в / var / lib / docker / volume / docker_myvolume Если я вызываю свой том docker_myvolume и включаю его в мой docker -составить yaml, он использует его и не создает свой собственный.

Это нормальное поведение?

Ответы [ 2 ]

2 голосов
/ 12 апреля 2020

Вам нужно установить external: true, чтобы сообщить docker -compose, что этот том был создан вне Compose; в противном случае Compose попытается создать том с именем [имя_проекта] _myvolume.

. В приведенном ниже примере docker-compose up не пытается создать том, вместо этого возникает ошибка, если он не существует.

volumes:
  myvolume:
    external: true
0 голосов
/ 12 апреля 2020

Да, Compose обычно префиксирует вещи с именем проекта . Это включает контейнеры, сети и именованные тома. В общем, если вам действительно нужно взаимодействовать с этими вещами, есть эквивалентная команда docker-compose, которая выбирает правильное имя ( например , docker-compose exec).

В общем, вам не следует не надо напрямую изменять вещи внутри /var/lib/docker. Это дерево каталогов является частным состоянием Docker, и нет особых гарантий относительно формата файлов в нем. Если ваш вариант использования предполагает непосредственное взаимодействие с файлами томов с хоста, либо используйте /host/path:/container/path bind mount или , чтобы явно указать место хранения , используя параметры тома .

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