Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе представлен обзор различных способов использования контейнеров в Windows. Контейнеры ведут себя не так, как виртуальные машины, когда речь идет о хранилище. По сути контейнеры создаются, чтобы предотвратить работу приложения в них от записи состояния во всей файловой системе узла. Контейнеры по умолчанию используют пространство "царапины", но Windows также предоставляет средства для сохранения хранилища.
Пространство с нуля
Контейнеры Windows по умолчанию используют эфемерное хранилище. Все операции ввода-вывода контейнера выполняются во "временном пространстве", и каждый контейнер получает свое собственное пространство. Создание файлов и их запись фиксируются во временном хранилище и не передаются на хост. При остановке экземпляра контейнера все изменения, внесенные во временное пространство, удаляются. При запуске нового экземпляра контейнера для него предоставляется новое временное пространство.
Хранилище слоев
Как описано в Обзоре контейнеров , образы контейнеров — это набор файлов, выраженные в виде ряда слоев. Хранилище слоев — это все файлы, встроенные в контейнер. Каждый раз, когда вы docker pull
, а затем docker run
этот контейнер, он становится таким же.
Где хранятся слои и как изменить его
В установке по умолчанию слои хранятся в C:\ProgramData\docker
и разделяются по каталогам image и windowsfilter. Вы можете изменить место хранения слоев с помощью конфигурации docker-root
, как показано в документации по подсистеме Docker в Windows.
Заметка
Для хранилища слоев поддерживается только NTFS. ReFS и общие тома кластеров (CSV) не поддерживаются.
Не следует изменять файлы в каталогах слоев. Они тщательно управляются с помощью таких команд, как:
- образы Docker
- docker rmi
- docker pull
- нагрузки docker
- docker save
Поддерживаемые операции в хранилище слоев
Запущенные контейнеры могут использовать большинство операций NTFS, за исключением транзакций. Сюда входит установка списков управления доступом (ACL), и все ACL проверяются внутри контейнера. Если вы хотите запустить процессы от имени нескольких пользователей в контейнере, можно создать пользователей в Dockerfile
с помощью RUN net user /create ...
, задать списки управления доступом к файлам, а затем настроить процессы на запуск от имени этих пользователей, используя директиву USER Dockerfile .
Постоянное хранилище
Контейнеры Windows поддерживают механизмы предоставления постоянного хранилища с помощью привязываемых подключений и томов. Дополнительные сведения см. в разделе постоянное хранилище в контейнерах.
Ограничения хранилища
Распространенный шаблон для приложений Windows — запрашивать объем свободного места на диске перед установкой или созданием новых файлов или в качестве триггера для очистки временных файлов. С целью максимальной совместимости приложений диск C: в Windows-контейнере имеет виртуальный свободный объём 20 ГБ.
Некоторым пользователям может потребоваться переопределить это значение по умолчанию и настроить свободное пространство на меньшее или большее значение. это можно сделать с помощью параметра "size" в конфигурации "storage-opt".
Пример
Командная строка: docker run --storage-opt "size=50GB" mcr.microsoft.com/windows/servercore:ltsc2019 cmd
Можно изменить файл конфигурации Docker напрямую:
"storage-opts": [
"size=50GB"
]
Подсказка
Этот метод также работает для сборки Docker. Дополнительные сведения об изменении файла конфигурации Docker см. в документе по настройке Docker.