Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 9379|Отговор: 0

Файлът или папката не съществува, когато Docker томът е монтиран

[Копирай линк]
Публикувано в 8.11.2021 г. 9:20:35 ч. | | |
Фон

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

Монтаж на папката

Поведението на Docker при монтиране на папки е равномерно, както следва:

  • Ако папката не съществува, папката се създава първо (или рекурсивно, ако е многостепенна папка).
  • Презапишете съдържанието на папката в контейнера с съдържанието на папката на хоста


Подробностите са следните:

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

домакин
контейнер
Резултат от маунт
Съществува непразна папка AПапка Б, която не съществуваПърво създай папка B в contanier, а след това копирай всички файлове в папка A в B
Съществува непразна папка AСъществува непразна папка BПърво изпразни оригиналното съдържание на китайската папка B в контейнера, а след това копирай китайско копие A в B

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

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

домакин
контейнер
Резултат от маунт
Празна папка А, която съществуваСъществува непразна папка BСъдържанието на китайската папка B в контейнера се изпразва

Съдържанието на съответната папка в контейнера се изпразва

Папката host не съществува

домакин
контейнер
Резултат от маунт
Папка А, която не съществуваСъществува непразна папка BСъздайте папка A на хост и съдържанието на китайската папка B в контейнера се изпразва
Папки A/B/C, които не съществуватСъществува непразна папка BСъздайте папки A/B/C на хоста и съдържанието на китайската папка B в контейнера се изпразва

Съдържанието на съответната папка в контейнера се изпразва

резюме

Хост папката определено ще презапише контейнерната китайска папка:

домакин
контейнер
Резултат от маунт
Папката не съществува/папката съществува, но е празнаПапката не съществува/съществува, но е празна/съществува и не е празнаконтейнер Китайски парче е покрито (изпразнено)
Папката съществува и не е празнаПапката не съществува/съществува, но е празна/съществува и не е празнасъдържанието на китайските папки в контейнера се презаписва (оригиналното съдържание се изпразва, а съдържанието на папката на хоста се презаписва)

Монтаж на файла

Най-голямата разлика между монтаж на файлове и монтаж на папки е:

  • Docker забранява монтирането на файлове, които не съществуват на хоста, към файлове, които вече съществуват в контейнера
  • Монтирането на файлове няма ефект върху други файлове в същата папка

Освен това, поведението му при презаписване е съвместимо с монтирането на папки, т.е.:

  • Презапишете съдържанието на файла в контейнера с съдържанието на файла на хост


Подробностите са следните:

домакин

домакин
контейнер
Резултат от маунт
Файлове, които не съществуват configA.jsДокументи, които вече съществуват, congfigB.jsГрешка, опитвате ли се да монтирате директория върху файл (или обратно)? Проверете дали посоченият път на хоста съществува и дали е очакваният тип. Генерира две празни директории configA.js и configB.js на хоста едновременно, но контейнерът не може да стартира

домакин

домакин
контейнер
Резултат от маунт
Настоящ файл configA.jsНастоящ файл congfigB.jsконтейнер китайски артикул configB.js остава същият, но съдържанието на файла се презаписва от съдържанието на congfigA.js
Настоящ файл configA.jsФайлове, които не съществуват congfigB.jsНов файл configB.js в контейнера със съдържанието на configA.js файла остава непроменен configB.js всички останали файлове под файла

резюме

Файлът на хоста винаги ще презаписва китайската папка в контейнера

домакин
контейнер
Резултат от маунт
Файлове, които не съществуватДокументи, които вече съществуватЗабранени действия
Съществуващи документиФайлове, които не съществуват / файлове, които вече съществуватДобавяне/презаписване (създаване на директория, ако не съществува)

извод

Монтаж на папката

  • Ако позволите несъществуващи или празни папки да бъдат монтирани в контейнера, съответните папки в контейнера ще бъдат изпразнени
  • Прикачването на непразна папка към контейнер ще презапише оригиналната папка в контейнера

Монтаж на файла

  • Забранено е монтирането на несъществуващи файлове върху файлове, които вече съществуват в контейнера
  • Съществуващите файлове ще бъдат презаписани, когато са прикачени към контейнера, и ако файловете не съществуват, те ще бъдат създадени

Сценарии на приложение

  • От горния анализ се вижда, че монтажът на папки се използва за презаписване на файлове в цялата папка, така че може да се използва, когато трябва да се монтират голям брой файлове в контейнера, освен това, ако се монтира празна или несъществуваща папка, обикновено се използва обратно: тоест, след стартиране на контейнера, някои файлове (като логове) могат да се генерират под папката на монтажната точка в контейнера и в този момент могат да се видят директно в папката на съответния хост.
  • Монтажът на файлове често се използва за монтиране на конфигурационни файлове с цел динамично модифициране на стандартната конфигурация по време на изпълнение, тъй като презаписва само един файл, без да засяга други файлове в същата папка в контейнера.

Прехвърлен от:Входът към хиперлинк е видим.

(Край)




Предишен:Elasticsearch използва elasticdump за архивиране и миграция на данни
Следващ:Docker POI error exception solution
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com