架构师_程序员_码农网

Имя пользователя Получить пароль
Регистрация

QQ登录

Всего один шаг, чтобы начать

Поиск
Просмотров:4755|Ответов: 0
打印 上一主题 下一主题

Файл или папка для монтирования тома Docker не существует

[Копировать ссылку]
Подъемник прямо к 跳转到指定楼层
владелец здания
发表于 2021-11-8 09:20:35|只看该作者回帖奖励|Реверсивныйпросмотр|Режим чтения
Фон

docker volume позволяет динамически монтировать некоторые файлы (например, файлы конфигурации) при запуске докер-контейнера, чтобы перезаписать оригинальные файлы в образе, но что произойдет, если вы смонтируете в контейнер папку или файл, который еще не существует на хосте? LZ столкнулся с такой проблемой в своей работе, поэтому он применил ее на практике и записал результаты эксперимента следующим образом:

Монтирование папки

Поведение docker при монтировании папок единообразно, как показано ниже:

  • Если папка не существует, она будет создана первой (если это многоуровневая папка, она будет создана рекурсивно), перезапишет содержимое папки в контейнере содержимым папки на хосте


Подробные инструкции приведены ниже:

Папка на хосте существует и не пуста

хост
контейнер
результат монтирования
Существующая непустая папка A Несуществующая папка B Создайте папку B в contanier, затем скопируйте все файлы из папки A в B.
Существующая непустая папка A Существующая непустая папка B Очистите содержимое папки B в контейнере, а затем скопируйте файлы из папки A в B.

Независимо от того, существует ли папка B в контейнере, A полностью перезапишет содержимое B.

Папка на хосте существует, но пуста

хост
контейнер
результат монтирования
Пустая папка A существует Существует непустая папка B Содержимое папки B в контейнере очищено.

Содержимое соответствующей папки в контейнере было очищено.

Папка не существует на хосте

хост
контейнер
результат монтирования
Несуществующая папка A Существующая непустая папка B На хосте создается папка A, а содержимое папки B в контейнере очищается.
Несуществующие папки A/B/C Существующая непустая папка B Папка A/B/C создается на хосте, а содержимое папки B в контейнере опустошается.

Содержимое соответствующей папки в контейнере будет опустошено.

Сводка

Папки на хосте должны перезаписывать папки в контейнере:

хост
контейнер
результат монтирования
Папка не существует/папка существует, но пуста Папка не существует/существует, но пуста/существует, но не пуста Файлы перезаписаны (опустошены) в контейнере
Папка существует и не пуста Папка не существует/существует, но пуста/существует и не пуста Содержимое папки контейнера перезаписано (оригинальное содержимое опустошено, перезаписано содержимым папки на хосте)

Монтирование файлов

Самое большое различие между монтированием файлов и монтированием папок заключается в следующем:


  • d ocker запрещает монтировать файл, уже существующий в контейнере, с файлом, не существующим на хосте Монтирование файлов не влияет на другие файлы в той же папке

В остальном поведение перезаписи такое же, как и при монтировании папок, т. е:


  • перезаписать содержимое файла в контейнере содержимым файла на хосте


Подробности следующие:

Файл на хосте не существует

хост
контейнер
результат монтирования
Несуществующий файл configA.js Существующий файл congfigB.js Вы пытаетесь смонтировать каталог к файлу (или наоборот)? Проверьте, существует ли указанный путь к хосту и имеет ли он ожидаемый тип. На хосте будут созданы две пустые директории configA.js и configB.js, но контейнер не запустится.

Файл существует на хосте

хост
контейнер
результат монтирования
Существующий файл configA.js Существующий файл configB.js Имя файла configB.js в контейнере остается прежним, но его содержимое заменяется содержимым файла congfigA.js.
Существующий файл configA.js Несуществующий файл congfigB.js. Контейнер в новом файле configB.js, его содержимое для содержимого файла configA.js, configB.js, где файл под всеми остальными файлами остается неизменным.

Резюме

Файлы на хосте должны перезаписывать папки в контейнере.

хост
контейнер
результат монтирования
Несуществующие файлы Существующие файлы Запрещенное поведение
Существующие файлы Несуществующие файлы/существующие файлы Добавление/перезапись (каталоги создаются, если они не существуют)

Заключение

Монтирование папок


  • позволяет монтировать в контейнер несуществующие папки или существующие пустые папки, при этом соответствующие папки в контейнере будут опустошены Непустые папки, смонтированные в контейнер, перезапишут существующие папки в контейнере

Монтирование файлов


  • Запрет монтирования несуществующих файлов на существующие файлы в контейнере Существующие файлы, смонтированные на контейнер, перезапишут соответствующие файлы в контейнере, если файл не существует, он будет создан

Сценарии применения

  • Из приведенного выше анализа видно, что монтирование папок используется для охвата всей папки, поэтому его можно использовать, когда нужно смонтировать большое количество файлов в контейнер. Кроме того, если вы монтируете пустую или несуществующую папку, то, как правило, можно использовать его для обратного действия: то есть после запуска контейнера можно создать несколько файлов в папке точки монтирования контейнера (например, журналы), а затем смонтировать папку в папке соответствующего хоста. папку на соответствующем хосте.
  • Файловое монтирование часто используется для монтирования файлов конфигурации для динамического изменения конфигурации по умолчанию во время выполнения, поскольку оно перезаписывает только один файл и не влияет на другие файлы в той же папке в контейнере.

Получено с сайта https://m.ancii.com/av94mq7pz.

(конец)




Предыдущая статья [Практика] Резервное копирование и миграция данных Elasticsearch с помощью elasticdump
Следующая статья:Решение проблемы исключения ошибок в POI докера
收藏转播分享Закладка Эстафета
Код фермера, публикуется только в процессе практики, столкнулся с техническими трудностями, не вводите в заблуждение других.
Вы должны войти в систему, прежде чем сможете отправлять сообщения назад Войти | Зарегистрироваться

Эта версия интегральных правил


DISCLAIMER: Все программное обеспечение, материалы по программированию или статьи, опубликованные Code Farmer, предназначены только для использования в учебных и исследовательских целях; вышеуказанное содержимое не должно использоваться в коммерческих или незаконных целях, в противном случае все последствия будут возложены на самих пользователей. Это сайт информации из сети, спор об авторских правах не имеет никакого отношения к этому сайту. Вы должны полностью удалить вышеуказанное содержимое со своего компьютера в течение 24 часов после загрузки. Если вам понравилась программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшее подлинное обслуживание. Если есть какие-либо нарушения, пожалуйста, свяжитесь с нами по электронной почте, чтобы разобраться с этим.

Почта To:help@itsvse.com

QQ| ( 鲁ICP备14021824号-2)|Sitemap

GMT+8, 2024-9-19 03:24

Быстрый ответНазад к началуНазад к списку