
Я пытаюсь запустить следующеесценарийно dockerd
не распознается на моей рабочей станции.
Моя ОС — Windows 10. Только что установил последнюю версию Docker — 18.09.2.
Это мой первый опыт работы с докером.
решение1
Этот ответ скорее дополнениеОтвет Жана-Франсуа Бошана:
Полную документацию по этому конфигурационному файлу вы можете найти наДокументация Docker.
Говорится :
--data-root
это путь, по которому хранятся постоянные данные, такие как изображения, тома и состояние кластера.
и
--exec-root
— это путь, где хранится состояние контейнера. Значение по умолчанию — /var/run/docker. Укажите здесь путь к вашему запущенному демону.
Поэтому, если вы хотите переместить и контейнеры, и изображения (и другие материалы), вам придется задать оба этих параметра.
Вы также можете создать простую ссылку, по которой Docker ожидает, что его папка будет перенаправлена в нужное место.
Это описаноздесьи приводят к тому же результату. Выглядит "грязно", но в итоге выглядит более стабильно, чем первое решение.
Работа с движком WSL 2 (для Windows Home и Family Editions)
"D:\\Docker\\data-root"
значение какпредложено Мигелемприведет к краху Docker, поскольку это должна быть папка WSL.
Однако Docker создает определенный дистрибутив WSL, который содержит ваши данные Docker,и вы можете переместить его. Для этого не требуется изменять параметры dockerd.
Чтобы переместить дистрибутив WSL Docker
wsl --export docker-desktop-data docker-desktop-data.tar
wsl --unregister docker-desktop-data
wsl --import docker-desktop-data X:\wslStore\ docker-desktop-data.tar --version 2
Параметр X:\wslStore
— это путь, по которому вы хотите «смонтировать» свой дистрибутив, что-то вродеD:\Docker\data-root
решение2
В Docker v19.03.8 для Windows я добавил этот graph
параметр в свою конфигурацию, и он у меня заработал, но, судя по всему, этот параметр устарел, и теперь data-root
вместо него следует использовать . Значение по умолчанию для data-root
— c:\programdata\docker
. Обратите внимание, что в файле конфигурации JSON обратные косые черты необходимо экранировать.
решение3
Найдите другой способ сделать это на основеэтотпочта.
Для контейнеров Unix путь к образам можно изменить с помощью интерфейса Docker Desktop, в форме настроек. Но если вы используете функцию контейнеров Windows, то устанавливается вторая служба, "Docker Engine". Чтобы изменить папку образа для этой службы, выполните следующие действия:
- Получите путь к файлу конфигурации. Перейдите в Административные инструменты->Службы. Проверьте командную строку демона докера на наличие службы "Dock Engine"
Командная строка выглядит примерно так:
"C:\Program Files\Docker\Docker\Resources\dockerd.exe" --run-service --service-name docker -G myPc" --config-file C:\ProgramData\DockerDesktop\tmp-d4w\daemon.json
- Отредактируйте файл конфигурации
daemon.json
и добавьте свойство data-root. Значение свойства должно указывать на желаемое местоположение. Должно выглядеть примерно так. Проверьтеэтотдля получения информации о структуре JSON.
{
"registry-mirrors": [],
"insecure-registries": [],
"debug": true,
"experimental": false,
"hosts": [
"npipe:////./pipe/docker_engine_windows"
],
"data-root":"D:\\Docker\\data-root"
}
При необходимости предоставьте текущей учетной записи разрешения на доступ к папке.
- Перезапустите службу. Если не запускается, проверьте
eventlog
возможные ошибки.
Предыдущие настроенные данные в c:\ProgramData\Docker будут утеряны при смене места установки. Это как новая установка в новое место. (образы, контейнеры и т. д.). Все подпапки будут созданы заново.
Чтобы сохранить минимум места на системном диске, сделайте это при новой установке.
Я не уверен на 100% в этом решении, но пока что Docker работает нормально, а занятость системного диска незначительна.