Где хранятся файлы Docker

Обновлено: 21.11.2024

По умолчанию все файлы, созданные внутри контейнера, хранятся на доступном для записи уровне контейнера. Это означает, что:

  • Данные не сохраняются, когда этот контейнер больше не существует, и может быть сложно получить данные из контейнера, если они нужны другому процессу.
  • Записываемый уровень контейнера тесно связан с хост-компьютером, на котором запущен контейнер. Вы не можете легко переместить данные в другое место.
  • Для записи на доступный для записи уровень контейнера требуется драйвер хранилища для управления файловой системой. Драйвер хранилища обеспечивает объединенную файловую систему с использованием ядра Linux. Эта дополнительная абстракция снижает производительность по сравнению с использованием томов данных, которые записываются непосредственно в файловую систему хоста.

В Docker есть два варианта контейнеров для хранения файлов на хост-компьютере, чтобы файлы сохранялись даже после остановки контейнера: тома и привязка монтирования.< /p>

Docker также поддерживает контейнеры, в которых файлы хранятся в памяти на хост-компьютере. Такие файлы не сохраняются. Если вы используете Docker в Linux, монтирование tmpfs используется для хранения файлов в системной памяти хоста. Если вы используете Docker в Windows, именованный канал используется для хранения файлов в системной памяти хоста.

Продолжайте читать, чтобы узнать больше о сохранении данных или использовании файлов в памяти.

Выберите правильный тип крепления

Независимо от того, какой тип монтирования вы выберете, данные внутри контейнера выглядят одинаково. Он отображается либо как каталог, либо как отдельный файл в файловой системе контейнера.

Простой способ визуализировать разницу между томами, подключениями привязки и подключениями tmpfs — подумать о том, где находятся данные на хосте Docker.

Тома хранятся в части файловой системы хоста, которая управляется Docker ( /var/lib/docker/volumes/ в Linux). Не-Docker-процессы не должны изменять эту часть файловой системы. Тома — лучший способ сохранить данные в Docker.

Маунты Bind могут храниться в любом месте в хост-системе. Это могут быть даже важные системные файлы или каталоги. Процессы, не относящиеся к Docker, на хосте Docker или в контейнере Docker могут изменять их в любое время.

Монтируемые файлы tmpfs хранятся только в памяти хост-системы и никогда не записываются в файловую систему хост-системы.

Подробнее о типах монтирования

Тома: создаются и управляются Docker. Вы можете создать том явным образом с помощью команды docker volume create, либо Docker может создать том во время создания контейнера или службы.

Когда вы создаете том, он сохраняется в каталоге на хосте Docker. Когда вы монтируете том в контейнер, этот каталог монтируется в контейнер. Это похоже на то, как работает связывание, за исключением того, что тома управляются Docker и изолированы от основных функций хост-компьютера.

Заданный том можно смонтировать в несколько контейнеров одновременно. Если ни один работающий контейнер не использует том, том по-прежнему доступен для Docker и не удаляется автоматически. Вы можете удалить неиспользуемые тома с помощью Docker Volume prune .

При монтировании тома он может быть именованным или анонимным. Анонимным томам не присваивается явное имя при первом монтировании в контейнер, поэтому Docker дает им случайное имя, которое гарантированно будет уникальным в пределах данного узла Docker. Помимо имени, именованные и анонимные тома ведут себя одинаково.

Тома также поддерживают использование драйверов томов, которые, помимо прочего, позволяют хранить данные на удаленных узлах или у облачных провайдеров.

Привязка монтирования. Доступно с первых дней существования Docker. Привязанные монтирования имеют ограниченную функциональность по сравнению с томами. Когда вы используете монтирование с привязкой, файл или каталог на хост-компьютере монтируется в контейнер. На файл или каталог ссылается его полный путь на хост-компьютере. Файл или каталог не должны уже существовать на хосте Docker. Он создается по запросу, если он еще не существует. Монтирование привязки очень эффективно, но оно зависит от файловой системы хост-компьютера, имеющей определенную доступную структуру каталогов. Если вы разрабатываете новые приложения Docker, рассмотрите возможность использования именованных томов. Вы не можете использовать команды командной строки Docker для прямого управления монтированием привязки.

Монтирование с привязкой позволяет получить доступ к конфиденциальным файлам

Один из побочных эффектов использования монтирования с привязкой, к лучшему или к худшему, заключается в том, что вы можете изменить файловую систему хоста через процессы, запущенные в контейнере, в том числе создание, изменение или удаление важных системных файлов или каталогов.Это мощная возможность, которая может иметь последствия для безопасности, в том числе влиять на процессы, не связанные с Docker, в хост-системе.

монтирование tmpfs: монтирование tmpfs не сохраняется на диске ни на хосте Docker, ни в контейнере. Он может использоваться контейнером в течение всего срока службы контейнера для хранения непостоянного состояния или конфиденциальной информации. Например, внутри службы swarm используют монтирование tmpfs для монтирования секретов в контейнеры службы.

именованные каналы: монтирование npipe можно использовать для связи между хостом Docker и контейнером. Обычный вариант использования — запустить сторонний инструмент внутри контейнера и подключиться к API-интерфейсу Docker Engine с помощью именованного канала.

Bind mounts и тома могут быть смонтированы в контейнеры с использованием флага -v или --volume, но синтаксис для каждого из них немного отличается. Для монтирования tmpfs вы можете использовать флаг --tmpfs. Мы рекомендуем использовать флаг --mount как для контейнеров, так и для служб, для монтирования привязки, томов или монтирования tmpfs, так как синтаксис более понятен.

Хорошие примеры использования томов

Тома – это предпочтительный способ хранения данных в контейнерах и службах Docker. Вот некоторые примеры использования томов:

Обмен данными между несколькими работающими контейнерами. Если вы не создадите его явно, том будет создан при первом монтировании в контейнер. Когда этот контейнер останавливается или удаляется, том все еще существует. Несколько контейнеров могут одновременно монтировать один и тот же том в режиме чтения-записи или только для чтения. Тома удаляются только тогда, когда вы удаляете их явным образом.

Когда на хосте Docker не гарантируется заданная структура каталога или файла. Тома помогают отделить конфигурацию хоста Docker от среды выполнения контейнера.

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

Если вам нужно создать резервную копию, восстановить или перенести данные с одного хоста Docker на другой, лучшим выбором станут тома. Вы можете остановить контейнеры, используя том, а затем создать резервную копию каталога тома (например, /var/lib/docker/volumes/).

Когда вашему приложению требуется высокопроизводительный ввод-вывод в Docker Desktop. Тома хранятся на виртуальной машине Linux, а не на хосте, а это означает, что операции чтения и записи имеют гораздо меньшую задержку и более высокую пропускную способность.

Когда вашему приложению требуется полностью собственное поведение файловой системы в Docker Desktop. Например, ядро ​​базы данных требует точного управления очисткой диска, чтобы гарантировать устойчивость транзакций. Тома хранятся на виртуальной машине Linux и могут обеспечить эти гарантии, в то время как монтирование с привязкой осуществляется удаленно в macOS или Windows, где файловые системы ведут себя несколько иначе.

Хорошие примеры использования привязки

Вообще, по возможности следует использовать тома. Привязные крепления подходят для следующих типов использования:

Общий доступ к файлам конфигурации с хост-компьютера в контейнеры. Вот как Docker по умолчанию обеспечивает разрешение DNS для контейнеров, монтируя /etc/resolv.conf с хост-компьютера в каждый контейнер.

Совместное использование исходного кода или артефактов сборки между средой разработки на хосте Docker и контейнером. Например, вы можете смонтировать целевой/каталог Maven в контейнер, и каждый раз, когда вы создаете проект Maven на хосте Docker, контейнер получает доступ к перестроенным артефактам.

Если вы используете Docker для разработки таким образом, ваш рабочий файл Dockerfile будет копировать готовые к работе артефакты непосредственно в образ, а не полагаться на привязку.

Если структура файлов или каталогов хоста Docker гарантированно соответствует монтированию привязки, которое требуется для контейнеров.

Хорошие примеры использования монтирования tmpfs

Подключение tmpfs лучше всего использовать в тех случаях, когда вы не хотите, чтобы данные сохранялись ни на хост-компьютере, ни в контейнере. Это может быть сделано из соображений безопасности или для защиты производительности контейнера, когда вашему приложению необходимо записать большой объем непостоянных данных состояния.

Советы по использованию привязанных монтирований или томов

Если вы используете привязку монтирования или тома, имейте в виду следующее:

Если вы монтируете пустой том в каталог в контейнере, в котором существуют файлы или каталоги, эти файлы или каталоги распространяются (копируются) в том. Точно так же, если вы запустите контейнер и укажете несуществующий том, для вас будет создан пустой том. Это хороший способ предварительно заполнить данные, которые нужны другому контейнеру.

Если вы монтируете связанное монтирование или непустой том в каталог в контейнере, в котором существуют некоторые файлы или каталоги, эти файлы или каталоги скрыты монтированием, как если бы вы сохранили файлы в /mnt в Linux. host, а затем смонтировал USB-накопитель в /mnt. Содержимое /mnt будет скрыто содержимым USB-накопителя до тех пор, пока USB-накопитель не будет размонтирован.Скрытые файлы не удаляются и не изменяются, но недоступны, пока смонтировано монтирование или том.

Себастьян Сигл

Docker получил широкое распространение и используется для запуска и масштабирования приложений в рабочей среде. Кроме того, его можно использовать для быстрого запуска приложений с помощью одной команды Docker.

Компании также прилагают все больше и больше усилий для улучшения разработки в локальных и удаленных контейнерах Docker, что также дает множество преимуществ.

Вы можете получить основную информацию о конфигурации Docker, выполнив:

Выходные данные содержат информацию о вашем драйвере хранилища и корневом каталоге Docker.

Место хранения образов и контейнеров Docker

Контейнер Docker состоит из сетевых настроек, томов и образов. Расположение файлов Docker зависит от вашей операционной системы. Вот обзор наиболее часто используемых операционных систем:

  • Убунту: /var/lib/docker/
  • Fedora: /var/lib/docker/
  • Debian: /var/lib/docker/
  • Windows: C:\ProgramData\DockerDesktop
  • MacOS: ~/Library/Containers/com.docker.docker/Data/vms/0/

В macOS и Windows Docker запускает контейнеры Linux в виртуальной среде. Поэтому необходимо знать некоторые дополнительные сведения.

Докер для Mac

Docker изначально не совместим с macOS, поэтому для запуска виртуального образа используется Hyperkit. Данные его виртуального образа находятся в:

В виртуальном образе используется путь Docker по умолчанию /var/lib/docker .

Вы можете исследовать корневой каталог Docker, создав оболочку в виртуальной среде:

Вы можете закрыть этот сеанс, нажав Ctrl+a, а затем k и y.

Докер для Windows

В Windows Docker немного дробится. Существуют нативные контейнеры Windows, которые работают аналогично контейнерам Linux. Контейнеры Linux запускаются в минимальной виртуальной среде на основе Hyper-V.

Конфигурация и виртуальный образ для выполнения образов Linux сохраняются в корневой папке Docker по умолчанию.

Если вы просматриваете обычные изображения, вы получите такие пути Linux, как:

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

Там вы можете перейти к указанному местоположению:

Внутренняя структура корневой папки Docker

Внутри /var/lib/docker хранится другая информация. Например, данные для контейнеров, томов, сборок, сетей и кластеров.

Образы Docker

Самым тяжелым содержимым обычно являются изображения. Если вы используете наложение драйвера хранилища по умолчанию2, ваши образы Docker хранятся в /var/lib/docker/overlay2. Там вы можете найти различные файлы, представляющие слои образа Docker, доступные только для чтения, и слой поверх него, содержащий ваши изменения.

Давайте рассмотрим содержание на примере:

LowerDir содержит слои изображения, доступные только для чтения. Слой чтения-записи, представляющий изменения, является частью UpperDir. В моем случае папка NGINX UpperDir содержит файлы журнала:

MergedDir представляет собой результат UpperDir и LowerDir, который используется Docker для запуска контейнера. WorkDir является внутренним каталогом для overlay2 и должен быть пустым.

Тома Docker

В контейнеры можно добавить постоянное хранилище для хранения данных дольше, чем существует контейнер, или для совместного использования тома с хостом или другими контейнерами. Контейнер можно запустить с томом с помощью параметра -v:

Мы можем получить информацию о расположении подключенного тома следующим образом:

Каталог, на который указывает ссылка, содержит файлы из папки /var/log контейнера NGINX.

Очистить пространство, используемое Docker

Рекомендуется использовать команду Docker для очистки неиспользуемых контейнеров. Контейнер, сети, изображения и кеш сборки можно очистить, выполнив:

Кроме того, вы также можете удалить неиспользуемые тома, выполнив:

Обзор

Docker — важная часть среды и инструментов многих людей. Иногда Docker кажется немного волшебным, решая проблемы очень умным способом, не сообщая пользователю, как все делается за кулисами. Тем не менее, Docker — это обычный инструмент, который хранит свои тяжелые части в местах, которые можно открывать и изменять.

Иногда хранилище может быстро заполниться. Поэтому полезно проверить его корневую папку, но не рекомендуется удалять или изменять какие-либо файлы вручную. Вместо этого для освобождения места на диске можно использовать команды сокращения.

Надеюсь, вам понравилась статья. Если вам это нравится и вы чувствуете потребность в аплодисментах, подписывайтесь на меня в Твиттере. Я работаю в eBay Kleinanzeigen, одной из крупнейших мировых компаний, занимающихся классификацией. Кстати, мы набираем сотрудников!

Энтони Хеддингс

Энтони Хеддингс
Писатель

Энтони Хеддингс (Anthony Heddings) – штатный облачный инженер LifeSavvy Media, технический писатель, программист и эксперт по платформе Amazon AWS. Он написал сотни статей для How-To Geek и CloudSavvy IT, которые были прочитаны миллионы раз. Подробнее.

Docker использует два вида форматов для представления запущенных процессов — образы и контейнеры, и оба хранят данные на диске вашего компьютера. Мы поговорим о командах, которые Docker предоставляет для обработки данных, и о том, как вы можете использовать их для доступа к файлам изображений и контейнеров.

Разница между изображениями и контейнерами

Изображения — это то, что вы создаете при запуске сборки docker; они хранятся в реестре контейнеров, таком как Docker Hub, и содержат все файлы и код для запуска приложения. Вы можете думать о них как о файлах ISO для операционной системы виртуальной машины.

Контейнеры создаются из образов и похожи на настоящую виртуальную машину, на которой выполняется приложение. У вас может быть несколько контейнеров, работающих параллельно с одним и тем же образом. Каждый контейнер будет иметь свою собственную файловую систему, при необходимости созданную с помощью «подключения тома», которое привязывает данные с хоста к контейнеру.

Работа с хранилищем образов Docker

Образы хранят все содержимое образа на вашем диске. Всякий раз, когда вы извлекаете изображение из Интернета, оно загружается и сохраняется, как правило, навсегда. Изображения могут быть очень большими, поэтому со временем они могут накапливаться, особенно для ноутбуков с ограниченным объемом памяти.

Если вы хотите получить прямой доступ к данным изображения, они обычно хранятся в следующих местах:

  • Linux: /var/lib/docker/
  • Windows: C:\ProgramData\DockerDesktop
  • macOS: ~/Library/Containers/com.docker.docker/Data/vms/0/

Однако трогать эти данные, скорее всего, не стоит. Хранилище Docker сложное и на самом деле сильно различается в зависимости от того, какой драйвер хранилища он использует. Linux теперь по умолчанию использует overlay2 в большинстве дистрибутивов, что даже недоступно для большинства конечных пользователей. Воздействие на это может привести к потере данных.

Вместо этого Docker предоставляет управляемые команды для обработки изображений. Вы можете просмотреть все версии загруженных изображений с помощью простой команды:

К счастью, все не так плохо, как кажется, поскольку образы Docker хранят версии поэтапно. Это означает, что всякий раз, когда вы загружаете новую версию, она заменяет только те части, которые были изменены. Если вы часто используете одно и то же изображение снова и снова, вы, вероятно, не будете тратить слишком много денег на хранение.

Однако, если вы используете много разных изображений, у вас может быть много сохраненных изображений, которые больше не используются. Чтобы очистить их, Docker предоставляет встроенную команду для запуска сборки мусора. При этом будут удалены все изображения, на которые нет ссылок, т. е. не помеченные или на которые не ссылается какой-либо контейнер.

Чтобы удалить все старые образы, не используемые существующими контейнерами, запустите его с флагом -a:

Это охватывает основной вариант использования, но есть еще несколько полезных команд:

  • inspect : отображает информацию о версии контейнера.
  • сохранить и загрузить: сохраняет и загружает изображения в tar-архив.
  • rm : удаляет изображение напрямую.
  • pull/push : обновления из удаленного реестра.
  • история: содержит журнал изменений.

Работа с контейнерным хранилищем Docker

Вы можете просмотреть всю информацию о контейнере с помощью docker inspect , которая показывает драйверы и данные файловой системы, а также все существующие подключения и тома.

Контейнеры хранят данные двумя способами. Во-первых, это базовая файловая система, которая копируется из образа и уникальна для каждого контейнера. Docker использует «нижний каталог» и «верхний каталог», которые представляют собой отдельные слои, которые объединяются в одну гибридную файловую систему. В нижнем каталоге хранятся данные базового образа, а в верхнем каталоге хранится все, что было изменено во время выполнения, например файлы журналов. В любом случае их хранение зависит от драйвера файловой системы, на использование которого настроен Docker.

Затем существуют монтирования, которые привязывают каталоги с хоста к контейнеру, обычно управляемые автоматически с помощью функции Docker, которая называется тома. Они обычно хранятся и доступны конечным пользователям. Если вы выполняете какую-либо работу, требующую изменения данных в запущенных контейнерах, вам, вероятно, следует изменить том или привязать монтирование.

Доступ к томам

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

Если вы хотите изменить данные, хранящиеся в томах, вы тоже можете это сделать. Они хранятся в стандартном формате, доступном для Linux:

Вы можете получить идентификатор тома и информацию с помощью docker volume inspect .

Как и изображения, тома могут устареть. Вы можете легко удалить их, но их резервное копирование и перенос — более сложный процесс.

Изменение файловой системы контейнера Docker

Если вы хотите изменить файловую систему контейнера, как и изображения, это плохая идея. В большинстве случаев следует создать новую версию контейнера с обновленными изменениями и развернуть обновление.

Однако, если вы хотите внести некоторые быстрые изменения, не останавливая контейнер, лучше всего просто открыть оболочку bash внутри контейнера и изменить ее с помощью Docker. Сделать это очень просто — запустите docker exec для контейнера и передайте «bash» в качестве команды:

С этого момента вы можете использовать обычные команды Linux. Если вы хотите сделать это удаленно, вы можете установить SSH-сервер в своем контейнере и связать порт 22 с другим портом на хосте.

  • › Как развернуть сервер GitLab с помощью Docker
  • › Что будет в React 18?
  • › Что нового в TypeScript 4.6?
  • › Как использовать Docker для упаковки приложений CLI
  • › CloudFoundry или Kubernetes: какую облачную платформу выбрать?
  • › Как развернуть веб-сервер Caddy с помощью Docker

Мне удалось найти контейнеры в каталоге /var/lib/docker/containers , но я не могу найти изображения.

Какие каталоги и файлы находятся в /var/lib/docker?

В таких случаях лучше указать специфику операционной системы в заголовке вопроса и/или формулировке вопроса. Было предоставлено два хороших ответа для Linux и macOS (Mac OS X).

30 ответов 30

Содержимое каталога /var/lib/docker зависит от драйвера, который Docker использует для хранения.

По умолчанию это будет aufs, но можно вернуться к overlay , overlay2 , btrfs , devicemapper или zfs в зависимости от поддержки вашего ядра. В большинстве случаев это будет aufs, но RedHats использовали devicemapper .

Вы можете вручную установить драйвер хранилища с параметром -s или --storage-driver= для демона Docker.

  • /var/lib/docker/ будет содержать специфичное для драйвера хранилище для содержимого образов.
  • /var/lib/docker/graph/ теперь содержит только метаданные об изображении в файлах json и layersize.

В случае aufs:

  • /var/lib/docker/aufs/diff/ содержит файлы изображений.
  • /var/lib/docker/repositories-aufs — это файл JSON, содержащий информацию о локальном образе. Это можно просмотреть с помощью команды docker images .

В случае с картографом устройств:

  • /var/lib/docker/devicemapper/devicemapper/data хранит изображения
  • /var/lib/docker/devicemapper/devicemapper/metadata метаданные
  • Обратите внимание, что эти файлы представляют собой "разреженные" файлы с тонкой инициализацией, поэтому они не так велики, как кажутся.

Если установить драйвер хранилища после того, как он уже запущен и у него есть запущенные контейнеры с образами, будет ли он переносить дату при следующем перезапуске демона? Если нет, то как изменить драйвер хранилища в этом случае?

Сделайте себе одолжение и не «проверяйте значения по умолчанию». Используйте информацию о докере и найдите фактическое местоположение, характерное для вашей установки.

Похоже, что-то изменилось. Я использую Docker для Mac с двумя образами по 1,5 ГБ каждый, а /var/lib не имеет каталога docker.

При использовании приложения Docker для Mac кажется, что контейнеры хранятся на виртуальной машине, расположенной по адресу:

ОБНОВЛЕНИЕ (любезно предоставлено mmorin):

По состоянию на 15 января 2019 года существует только этот файл:

который содержит Docker Disk и все образы и контейнеры внутри него.

Это место для всех образов (например, ubuntu , nginx ) или это место для всех контейнеров? В исходном вопросе запрашиваются изображения, а не контейнеры.

Если вы помните, что Docker все еще работает на виртуальной машине, системные пути относятся к виртуальной машине, а не к системе Mac Osx. Попробуйте эту команду: docker run --rm -it -v /:/vm-root alpine:edge ls -l /vm-root nad после этого: docker run --rm -it -v /:/vm-root alpine: edge ls -l /vm-root/var/lib/docker Вы можете просмотреть папку docker с хоста WM

Похоже, что-то изменилось.Я использую Docker для Mac с двумя образами по 1,5 ГБ каждый, а ~/Library/Containers/Data/com.docker.docker/Data не имеет каталога com.docker.driver.amd64-linux, а единственный большой файл находится в vms/ 0/Docker.raw размером 3,6 ГБ.

На самом деле образы Docker хранятся в двух файлах, как показано следующей командой

Файл данных: /var/lib/docker/devicemapper/devicemapper/data

Файл метаданных: /var/lib/docker/devicemapper/devicemapper/metadata

Да, к сожалению, эти две строки "Файл (мета)данных" не отображаются в каждом докере. Это зависит от используемого драйвера

Правильный ответ не "Вот где он находится на МОЕЙ машине". Правильный ответ: «Вот как вы найдете это на ВАШЕЙ машине». Это правильный ответ. Я присоединился к компании с 11 различными томами EBS, заполненными образами докеров. Этот ответ позволил мне выяснить, какой из них является текущим «корневым каталогом».

В Mac OS X (по крайней мере, в Yosemite, который является EOL по сравнению с Docker), информация о докере очень полезна, но выходной корневой каталог Docker: /var/lib/docker не указывает место хранения образа (см. Mac- конкретный ответ выше).

Это был старый способ, теперь он изменился. Игнорировать этот ответ с 2019 года

В особых случаях Mac OS X или Windows с использованием boot2docker ваши образы Docker хранятся в виртуальной машине VirtualBox, управляемой boot2docker.

Эта виртуальная машина будет храниться в обычном месте образов VirtualBox:

OS X: ~/VirtualBox VMs/boot2docker-vm

Windows: %USERPROFILE%/VirtualBox VMs/boot2docker-vm

Вы можете сбросить его, запустив (ВНИМАНИЕ: это уничтожит все образы, которые вы создали и загрузили до сих пор):

Это особенно полезно, если вы хранили тонны промежуточных изображений при сборке/отладке сборки без полезных опций --rm, я привожу их здесь для справки: Использование:

После новой установки Docker в Windows 10 я могу подтвердить, что в результате нажатия ярлыка терминала быстрого запуска Docker в первый раз создается виртуальная машина (ВМ) с именем «по умолчанию» (после нескольких неудачных запусков — сохраните запускать, пока не заработает). Эта виртуальная машина «по умолчанию» может находиться в Windows по адресу: %USERPROFILE%\.docker\machine\machines (обратите внимание на точку в пути)

Ответ больше не является правильным для Windows 10. Вместо этого см. более новый ответ от @tristan, который ссылается на C:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx

Изображения хранятся в /var/lib/docker/graph//layer .

Обратите внимание, что изображения просто отличаются от родительского изображения. Родительский идентификатор хранится вместе с метаданными изображения /var/lib/docker/graph//json .

Когда вы запускаете образ в Docker. AUFS «объединит» все слои в одну пригодную для использования файловую систему.

В недавно выпущенном Docker для Windows, в котором используется Hyper-V, данные находятся на виртуальном жестком диске Docker:

Вы также можете открыть "Диспетчер Hyper-V" для доступа к Docker/MobyLinuxVM.

В Ubuntu вы можете «поиграть» с запущенными изображениями

На самом деле образы хранятся в /var/lib/docker/aufs/diff

Для тех, кто использует набор инструментов Docker (который использует docker-machine), ответы, касающиеся boot2docker в Mac OS X, недействительны. Виртуальная машина docker-machine называется «по умолчанию» и находится в каталоге /Users//.docker/machine/machines/default/.

$docker images -a дает около 1 гигабайта образов, а disk.vmdk в ~/.docker — около 20 гигабайт. Как так?

Если вы используете Docker для MAC (не boot2docker ), то это расположение /Users/UserName>/Library/Containers/com.docker.docker/Data/

Да, когда я сделал: jasper@~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux $ ls -lh | grep Docker -rw-r--r--@ 1 jasper staff 6.3G 25 мая 19:20 Docker.qcow2 Я нашел образ. Но дело не в контейнерах. Не видеть их в этом каталоге данных на самом деле..

В Docker для Windows (исходная версия Windows) хранилище контейнеров по умолчанию находится по адресу:

Я запустил команду сборки docker и не вижу файла, который, как мне кажется, является файлом образа. Я вижу несколько папок и несколько текстовых файлов (например, service.txt). Какой тип файла и с каким расширением файла создает сборка Docker?

Как указано здесь, если вы используете Mac, он находится по адресу

Расширяя ответ Тристана, в Windows с Hyper-V вы можете переместить изображение, выполнив следующие шаги от matthuisman:

  1. Остановить докер и т. д.
  2. Введите «Диспетчер Hyper-V» в поле поиска на панели задач и запустите его.
  3. Выберите свой компьютер на левой панели (мой называется DESKTOP-CBP**)
  4. Щелкните правой кнопкой мыши нужную виртуальную машину (у меня она называется MobyLinuxVM)
  5. Выберите "Выключить" (если он запущен)
  6. Еще раз нажмите правой кнопкой мыши и выберите "Переместить".
  7. Следуйте инструкциям

При этом перемещается только компьютер Hyper-V, а не образы, образы все равно будут храниться там, где находится VHD.

@olive_tree Я пытаюсь найти образы, созданные командой сборки docker. Я на компьютере с Windows 10. Я смотрю в папку C:\Users\Public\Documents\Hyper-V\Virtual hard disks, но вижу только MobyLinuxVM.vhdx. Где хранятся настоящие изображения?

Используйте команду docker info для отображения общесистемной информации. Расположение может отличаться.

В зависимости от используемого драйвера хранилища может отображаться дополнительная информация, такая как имя пула, файл данных, файл метаданных, используемое пространство данных, общее пространство данных, используемое пространство метаданных и общее пространство метаданных.

Файл данных — это место, где хранятся изображения, а файл метаданных — это место, где хранятся метаданные, относящиеся к этим изображениям. При первом запуске Docker выделяет определенный объем пространства данных и пространства метаданных из пространства, доступного на томе, где смонтирован /var/lib/docker.

Вот пример для Ubuntu (отметьте Корневой каталог):

А вот пример для Travis CI (см. Корневой каталог Docker):

Вы можете использовать параметр --format для извлечения этой информации в один файл, например,

Образы Docker хранятся в каталоге docker: там хранятся образы /var/lib/docker/.

Кроме того, где в Windows хранятся файлы Docker?

Только контейнеры Windows Контейнеры и образы Windows находятся в папке, расположенной в C:ProgramDataDocker на диске операционной системы.

где хранятся контейнеры Docker в Windows 10? По сути, по словам Майкла Фрииса, образы докеров хранятся в Hyper-VM, а сам жесткий диск Hyper-V VM обычно находится на виртуальных жестких дисках C:UsersPublicDocumentsHyper-V.

Точно так же вы можете спросить, где хранятся образы Docker для Mac?

Где находится образ Docker?

Изображения хранятся внутри /var/lib/docker, а затем в соответствующем каталоге драйвера хранилища. Используемый драйвер хранилища можно определить, выполнив команду docker info.

Где хранится кеш Docker?

При установке по умолчанию они расположены в /var/lib/docker. Во время новой сборки все эти файловые структуры должны быть созданы и записаны на диск — именно здесь Docker хранит базовые образы. После создания контейнер (и последующие новые) будут храниться в папке в этой же области.

Что такое Docker push?

Используйте docker push, чтобы опубликовать свои образы в реестре Docker Hub или в собственном хранилище. Дополнительные сведения о допустимых именах изображений и тегов см. в справочнике по тегам Docker. Уничтожение процесса отправки докеров, например нажатием CTRL-c во время его работы в терминале, завершает операцию отправки.

Что такое образ докера?

Образ Docker – это файл, состоящий из нескольких слоев, который используется для выполнения кода в контейнере Docker. Образ, по сути, создается из инструкций для полной и исполняемой версии приложения, которое зависит от ядра основной ОС.

Что такое Docker Linux?

Docker — это проект с открытым исходным кодом, который автоматизирует развертывание приложений внутри контейнеров Linux и предоставляет возможность упаковать приложение с его зависимостями во время выполнения в контейнер. Он предоставляет инструмент командной строки Docker CLI для управления жизненным циклом контейнеров на основе образов.

Как использовать Dockerfile?

Основы Dockerfile ADD: копирование файлов из источника на хосте в собственную файловую систему контейнера в заданном месте назначения. CMD: выполнить определенную команду в контейнере. ENTRYPOINT: установите приложение по умолчанию, которое будет использоваться каждый раз, когда контейнер создается с образом. ENV: установка переменных среды.

Как удалить все контейнеры Docker?

Остановить и удалить все контейнеры Чтобы остановить все запущенные контейнеры, используйте команду остановки контейнера docker, за которой следует список идентификаторов всех контейнеров. Когда все контейнеры остановлены, вы можете удалить их с помощью команды docker container rm, за которой следует список идентификаторов контейнеров.

Где находится файл конфигурации Docker на Mac?

В последних версиях Docker Desktop для Mac файлы находятся в каталоге ~/. докер. Я использую Docker для Mac 1.13. 0 в MacOS 10.12, а доступ к настройкам демона можно получить через приложение Docker («Настройки» -> «Демон» -> «Дополнительно»).

Где находится Docker на Mac?

Установите и запустите Docker Desktop на Mac dmg, чтобы открыть программу установки, затем перетащите значок Docker в папку «Приложения». Дважды щелкните Докер. app в папке «Программы», чтобы запустить Docker. (В приведенном ниже примере папка «Приложения» находится в режиме просмотра «сетка».)

Как показать скрытые файлы на Mac?

Долгий способ отобразить скрытые файлы Mac OS X заключается в следующем: откройте Терминал в Finder > Приложения > Утилиты. В Терминале вставьте следующее: по умолчанию напишите com. яблоко. поисковик AppleShowAllFiles ДА. Нажмите возврат.Удерживая нажатой клавишу «Option/alt», щелкните правой кнопкой мыши значок Finder в доке и выберите «Перезапустить».

Что такое Docker pull?

Как добавить контейнер Docker в список?

Список контейнеров Docker Как видите, на изображении выше показано, что запущенных контейнеров нет. Чтобы получить список контейнеров по их идентификатору, используйте –aq (quiet): docker ps –aq. Чтобы вывести общий размер файла каждого контейнера, используйте –s (размер): docker ps –s. Команда ps предоставляет несколько столбцов информации:

Что хранится в var lib Docker overlay2?

Docker использует /var/lib/docker для хранения образов, контейнеров и локальных именованных томов. Удаление этого может привести к потере данных и возможной остановке работы двигателя. Подкаталог overlay2 специально содержит различные уровни файловой системы для изображений и контейнеров.

Читайте также: