Изменить местоположение устройства Docker - Windows
Я использую docker toolbox в Windows 7 для запуска docker. (докер версия 1.9.1)
Как оказалось, машина-докер создает свою виртуальную машину в папке C:\Users\username \.docker\machine\machines\default. И когда я фиксирую изображения, размер виртуальной машины в этом месте раздувается. Начиная с его Windows, не может позволить себе роскошь пространства на диске C.
Можно ли изменить местоположение машины по умолчанию?
Ответы
Ответ 1
Это то, что отлично работало для меня в Windows 7:
- Установите переменную среды MACHINE_STORAGE_PATH в качестве корня местоположения, которое вы хотите использовать для машин/виртуальных машин Docker, кеша и т.д.
- Установить панель инструментов Docker
- Запустить терминал быстрого запуска Docker
Docker Toolbox теперь создаст все файлы в местоположении, на которое указывает MACHINE_STORAGE_PATH.
UPDATE:
Обратите внимание, что создание новой виртуальной машины с новым пути хранения не является идеальным, поскольку сценарии терминалов QuickStart для Docker не работают ни с чем не называемыми "по умолчанию".
Если у вас уже есть виртуальная машина, сидящая на диске C:, проще всего перейти к Oracle VirtualBox и удалить виртуальную машину по умолчанию, удалить Docker Toolbox, удалить C:\Users\<; username > .docker \, а затем выполните 3 шага выше.
Примечание. Удаление и переустановка Docker Toolbox может не потребоваться. Но я не тестировал без него.
Обновление
Чтобы переместить сертификаты Docker, установите переменную DOCKER_CERT_PATH
, чтобы указать путь к новому диску. Спасибо @Nutle за подсказку.
Ответ 2
С 2015 года появился (июнь 2017 года) Hyper-V, который позволяет вам определять, где вы хотите VHDX
ваши файлы VHDX
:
См. Docker для Windows 1.13.0, 2017-01-19 (стабильный):
Файл VHDX, содержащий образы и тома, не подключенные к хосту, можно перемещать (используя вкладку "Дополнительно" в пользовательском интерфейсе)
Это изменит %APPDATA%\Docker\settings.json
на строку:
"MobyVhdPathOverride":"C:\\Users\\Public\\Documents\\Hyper-V\\New folder\\MobyLinuxVM.vhdx"
![https://cdn-enterprise.discourse.org/docker/uploads/default/optimized/2X/6/6193445cf15811ce18317c727af258adb2d16c9d_1_690x447.jpg]()
Смотрите эту тему для получения дополнительной информации.
Оригинальный ответ
В настоящее время докер-машина принудительно использует %USERPROFILE%
:
Смотрите libmachine/mcnutils/utils.go#L17-L25
Как прокомментировано в выпуске 499:
А пока как пользователи смогут указать, где .docker/machine/*
файлы .docker/machine/*
?
Вы можете указать --storage-path
в командной строке или использовать переменную окружения MACHINE_STORAGE_PATH
.
(Вы можете видеть это реализованным в пиаре 1941)
Joost Den Boer указывает в комментариях
Только что попробовал ' -s <path>
' на Mac, и, похоже, он работает нормально.
Что может быть неочевидным, так это то, что опция path идет перед командой.
docker-machine -s/Volumes/other/location' create --driver=virtualbox
" docker-machine -s/Volumes/other/location' create --driver=virtualbox
"создал новый образ VirtualBox в другом месте.
Ответ 3
Вы можете переместить каталог .docker
на другой диск и создать для него точку соединения.
Обратите внимание, что обычный ярлык не будет работать.
Например:
Переместите каталог .docker
с C:\Users\username
на D:\
и запустите:
C:\Users\username>mklink /j .docker D:\.docker
Junction created for .docker <<===>> D:\.docker
Ответ 4
Просто используйте графический интерфейс VirtualBox, чтобы переместить файл disk.vmdk
:
![введите описание изображения здесь]()
- Скопируйте файл
C:\Users\{myUsername}\.docker\machine\machines\default\disk.vmdk
в другую папку, скажем F:\docker-image\
.
- Откройте
VirtualBox
, выберите default
VM и откройте Settings
.
- Откройте
Storage
, выберите текущий disk.vmdk
и отпустите его (или удалите).
- Нажмите
Choose Virtual Hard Disk File...
и найдите скопированный файл в F:\docker-image\
- Появляется предупреждение: VirtualBox жалуется на старый VM UID, затем перейдите в меню
File
, выберите Virtual Media Manager...
и отпустите или удалите старый disk.vmdk
- Повторить
4.
, это было сделано!
- Если требуется ваша среда, выполните перемещение также для boot2docker.iso, папки моментальных снимков, видеозахвата.
Ответ 5
Поместите эти две команды при запуске терминала быстрого запуска докера.
Я предполагаю, что ваше новое местоположение - "D:\docker", а ваше новое имя машины - "docker1"
export MACHINE_STORAGE_PATH=D:\\docker
docker-machine create --driver=virtualbox docker1
Это должно создать новый компьютер с указанным именем в вашем новом местоположении.
Ответ 6
Я не мог заставить работать метод переменной среды MACHINE_STORAGE_PATH. Он продолжал жаловаться на отсутствие сертификатов при первой инициализации машины. Тем не менее, в Windows 7 необходимо использовать док-инструментарий.
У меня проблема:
- Удаление панели инструментов Docker и перезапуск машины
- Откройте приглашение администратора (найдите командную строку, удерживайте shift, выберите "Запуск от имени администратора" )
- Удаление .docker из% USERPROFILE%: rmdir/S% USERPROFILE%.docker
- Создать папку под названием .docker в другом месте: mkdir a: \. docker
- mklink/J% USERPROFILE%.docker a: \. docker
- Закрыть команду командной строки администратора
- Переустановка Docker Toolbox
- Используйте ссылку Docker Quickstart Terminal для загрузки всего.
- Теперь можно открыть Kitematic (хотя мне пришлось выбрать опцию "Использовать виртуальную коробку" при первой ошибке.
Ответ 7
У меня было немного проблем с любым из вышеперечисленных решений, но это то, что сработало для меня:
- определите переменную среды
MACHINE_STORAGE_PATH
, чтобы указать на желаемую
каталог/папку.
- Установите docker-toolbox как обычно, если это сработает для вас, тогда это нормально, но для меня он все еще устанавливался внутри каталога
.docker
.
- Чтобы исправить это, я остановил и удалил машину по умолчанию, созданную вместе с папкой
.docker
из каталога Users.
- Отредактировал
start.sh
script и добавил строку вверху:
например.
export MACHINE_STORAGE_PATH=D:\\Docker
- Запустите ярлык терминала быстрого запуска Docker, который перестроил машину по умолчанию в желаемой папке
Ответ 8
Эти ответы устарели, начиная с последней версии. Местоположение настраивается в пользовательском интерфейсе настроек.
https://github.com/docker/for-win/issues/333
Ответ 9
Я обнаружил, что многие из этих ответов были из данных, по крайней мере, они не работали в моей среде: win10 PRO, Docker Desktop Community 2.0.0.3. Наконец, я решил эту проблему с помощью этого метода:
-
удалить докер
-
откройте диспетчер Hyper-V (нажмите клавишу WIN, а затем введите "Hyper")
-
Измените расположение виртуальных жестких дисков по умолчанию в настройках Hyper-V (не в настройках виртуальной машины) и подтвердите
-
установить докер
-
проверить расположение образа диска в дополнительных настройках настроек докера
Ответ 10
Создайте файл с именем c:\programdata\docker\config\daemon.json с содержимым ниже, где e:\images - это место, где вы хотите сохранить все свои изображения и т.д. Перезапустите Docker.
{"graph": "e:\images"}
Это сработало как шарм
Ссылка - https://forums.docker.com/t/where-are-images-stored/9794/11