Я граю з Докером пару днів, і я вже зробив кілька зображень (що було дійсно весело!). Тепер я хочу наполегливо працювати і прийшов до команд saveі exportкоманд, але я не повністю їх розумію.
Яка різниця між Докером saveта exportв ньому?
Я граю з Докером пару днів, і я вже зробив кілька зображень (що було дійсно весело!). Тепер я хочу наполегливо працювати і прийшов до команд saveі exportкоманд, але я не повністю їх розумію.
Яка різниця між Докером saveта exportв ньому?
Відповіді:
Коротка відповідь:
saveотримає зображення: для VM або фізичного сервера, це було б встановлення .ISO-зображення або диска. Базова операційна система.
Він упакуватиме шари та метадані всього ланцюга, необхідних для створення зображення. Потім ви можете завантажити цю ланцюжок "збережених" зображень в інший екземпляр докера та створити контейнери з цих зображень.
exportотримає весь контейнер: як знімок звичайної VM. Зберігає ОС звичайно, але також будь-які внесені вами зміни, будь-який файл даних, записаний протягом життя контейнера. Цей скоріше нагадує традиційне резервне копіювання.
Він надасть вам плоский архів .tar, що містить файлову систему вашого контейнера.
Редагувати: оскільки моє пояснення все ще може призвести до плутанини, я думаю, що важливо розуміти, що одна з цих команд працює з контейнерами, а інша працює із зображеннями.
Зображення повинно розглядатися як «мертвий» або незмінні, починаючи 0 або 1000 контейнерів з нього не буде змінювати один байт. Тому я раніше провів порівняння із системою встановлення ISO. Це, можливо, ще ближче до прямого CD.
Контейнер «чоботи» зображення і додає додатковий шар поверх нього. Цей шар зберігає будь-які зміни на контейнері (створені / змінені / видалені файли ...).
docker commit). Я можу тоді saveзображення. Або я можу exportбезпосередньо контейнер. І обидва способи ( saveзображення та exportконтейнер) матимуть однаковий результат?
exportДасть вам квартиру .tar архів , що містить ваш контейнер файлової системи. saveбуде пакувати шари та метадані всього ланцюга, необхідних для створення зображення. Потім ви можете завантажити цей savedланцюжок зображень " " в інший екземпляр докера та створити контейнери з цих зображень.
exportфункції.
exportвсі метадані будуть втрачені, тому у випадку, якщо ви спробуєте запустити контейнер із цим зображенням, ви будете перенаправляти CMD та інші метадані. saveдобре працював для мене, але експорт болів
Є дві основні відмінності між командами saveта exportкомандами.
saveкоманда зберігає ціле зображення з історією та метаданими, але exportкоманда експортує лише структуру файлів (без історії та метаданих). Таким чином, експортований файл tar буде меншим, ніж збережений.
При використанні експортованої файлової системи для створення нового образу , то цей новий образ не буде містити будь - яких USER, EXPOSE, і RUNт.д. команди з вашого Dockerfile. Передається лише структура файлів. Отже, коли ви використовуєте згадані ключові слова у своєму Dockerfile, тоді ви не можете використовувати команду експорту для передачі зображення на іншу машину - вам завжди потрібно використовувати команду save.
Експортоване зображення не буде збережено жодного шару чи історії історії, тому воно буде меншим, і ви не зможете відкатати.
Збережене зображення матиме інформацію про рівень та історію, настільки масштабну.
Якщо ви віддаєте це замовнику, Q - ви хочете зберегти ці шари чи ні?
Технічно збереження / завантаження працює з сховищами, які можуть бути одним або декількома зображеннями, які також називаються шарами. Зображення - це один шар у межах репо. Нарешті, контейнер - це миттєве зображення (працює чи ні).
Docker save Зберігає файл tar-репо, який містить усі батьківські шари та всі теги + версії або вказаний тег repo: для кожного аргументу, наданого із зображення .
Експорт Docker Випускає вказаний файл (може бути дьоготь або tgz) з плоским вмістом без вмісту вказаних томів з контейнера .
Докер зберегти потрібно використовувати на зображенні докера під час експорту докера потрібно використовувати на контейнері (як і запущене зображення)
Зберегти використання
зберегти докер [OPTIONS] IMAGE [IMAGE ...]
Збережіть зображення (файли) в архіві смоли (передається в STDOUT за замовчуванням)
--help = помилкове використання друку -o, --output = "" Запишіть у файл замість STDOUT
Використання експорту
експорт докера [ВАРІАНТИ] КОНТЕЙНЕР
Експортуйте вміст файлової системи контейнера у вигляді архіву tar
--help = помилкове використання друку -o, --output = "" Запишіть у файл замість STDOUT
export: container (filesystem)-> image tar.
import: exported image tar-> image. Лише один шар.
save: image-> image tar.
load: saved image tar-> image. Усі шари будуть відновлені.
Від Докера в дії, друге видання p190.
Пошарові зображення підтримують історію зображення, метадані створення контейнерів та старі файли, які, можливо, були видалені або переоформлені.
Згладжені зображення містять лише поточний набір файлів у файловій системі.