Остановка docker-compose контейнеров размонтирует тома? - PullRequest
0 голосов
/ 26 мая 2019

Как часть моего стремления полностью понять, как докер работает с томами под капотом (в продолжение моего предыдущего поста ), мне любопытно, как работает docker-compose stop с томами.

Возможны две возможности:

  1. Тома отключаются после выполнения docker-compose stop и затем снова монтируются в лексографическом порядке при выполнении docker-compose start.
  2. Тома остаются подключенными до тех пор, пока контейнер не будет удален с помощью docker-compose rm или аналогичной команды.

Мне было любопытно, что даже перезапуск остановленного контейнера создаст пустой каталог в моей папке хоста.В моем docker-compose.yml есть следующее:

volumes:
- .:/var/www/app
- my_modules:/var/www/app/node_modules

Итак, из моего понимания ответа в связанном посте выше, создается пустой каталог из-за следующего:

  1. Bind mount происходит первым (лексографический порядок), перезаписывает все в /var/www/app
  2. Docker попытается смонтировать node_modules, но, так как каталог больше не существует в контейнере (перезаписан), он будет mkdir node_modules чтобы иметь каталог для монтирования именованного тома.
  3. Так как монтирование bind уже существует, когда происходит mkdir, я вижу новую пустую папку node_modules на моем хосте.

Это имеет смысл, если тома монтируются, но если 2) имеет значение true и они остаются смонтированными даже после запуска docker-compose stop, почему я все еще вижу, что на моем хосте создается пустой каталог?Я удаляю node-modules с моего хоста между командами stop и up для воспроизведения этого поведения.

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