Рассмотрим следующий код YAML в моем файле docker-compose.yml
, который устанавливает монтирование тома (с использованием версии 3.7), используя краткий синтаксис формы , как указано в документации:
volumes:
- ./logging:/var/log/cron
Это сопоставляет относительный путь logging
на моем хост-компьютере с папкой /var/log/cron
внутри контейнера. Когда я запускаю docker-compose up
, если папка logging
не существует на моем хост-компьютере, Docker создает ее. Все хорошо.
Теперь, если я изменю приведенный выше код на полный синтаксис :
volumes:
- type: bind
source: ./logging
target: /var/log/cron
Теперь, когда я запускаю docker-compose up
, он НЕ создаетПапка logging
, если она не существует на моем хост-компьютере. Я получаю
Cannot create container for service app: b'Mount denied:\nThe source path "C:/Users/riptusk331/logging"\ndoesn\'t exist and is not known to Docker'
Кто-нибудь знает, почему синтаксис краткой формы создает путь к хосту, если он не существует, а длинная форма не создает и выдает ошибку?
Использование Docker Desktop для Windows.