it-swarm.com.ru

Изменить расположение компьютера с докером - Windows

Я использую Docker Toolbox на Windows 7 для запуска Docker. (докер версия 1.9.1)

Оказывается, докер-машина создает свой VM в C:\Users\имя пользователя\.docker\machine\machines\default. И когда я фиксирую изображения, размер VM в этом месте увеличивается. Так как его Windows, не может позволить себе роскошь места на диске C. 

Можно ли как-то изменить местоположение машины по умолчанию? 

50
shrivb

Вот что отлично сработало для меня в Windows 7:

  1. Установите переменную среды MACHINE_STORAGE_PATH в качестве корня расположения, которое вы хотите использовать для компьютеров/виртуальных машин Docker, кэша и т.д.
  2. Установить Docker Toolbox
  3. Запустите Docker Quickstart Terminal

Docker Toolbox теперь создаст все файлы в месте, указанном MACHINE_STORAGE_PATH.

Обновление:

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

Если у вас уже есть VM на диске C :, то самое простое, что вам нужно сделать, это зайти в Oracle VirtualBox и удалить виртуальную машину «по умолчанию», удалить Docker Toolbox, удалить C:\Users\<username> .docker \, а затем выполните 3 шага, описанных выше.

Примечание: удаление и переустановка Docker Toolbox может не потребоваться. Но я не проверял без этого.

Обновление

Чтобы также переместить сертификаты Docker, установите переменную DOCKER_CERT_PATH, чтобы указать путь к новому диску. Спасибо @Nutle за подсказку.

43
Rajesh J Advani

Начиная с 2015 года, теперь (июнь 2017 года) HYPER-V, который позволяет определить, где вы хотите 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

Смотрите эту тему больше .


Оригинальный ответ

В настоящее время docker-machine 2015 принудительно использует %USERPROFILE%:
См. libmachine/mcnutils/utils.go#L17-L25

Как прокомментировано в выпуск 499 :

В то же время, как пользователи смогут указать, где хранятся файлы .docker/machine/*?

вы можете указать --storage-path в командной строке или использовать переменную окружения MACHINE_STORAGE_PATH.

(Вы можете увидеть это реализованным в PR 1941 )

Joost Den Boer указывает в комментариях

Только что попробовал '-s <path>' на Mac, и, кажется, он работает нормально.
Что может быть неочевидным, так это то, что опция path идет перед командой.
Запуск "docker-machine -s /Volumes/other/location' create --driver=virtualbox" создал новый образ VirtualBox в другом месте. 

25
VonC

Вы можете переместить каталог .docker на другой диск и создать для него точку соединения. 

Обратите внимание, что обычные ярлыки не будут работать.

Например:

Переместить каталог .docker из C:\Users\username в D:\

и запустить: 

C:\Users\username>mklink /j .docker D:\.docker
Junction created for .docker <<===>> D:\.docker
19
vlado

Просто используйте графический интерфейс VirtualBox, чтобы переместить файл disk.vmdk:

 enter image description here

  1. Скопируйте файл C:\Users\{myUsername}\.docker\machine\machines\default\disk.vmdk в другую папку, скажем F:\docker-image\.
  2. Откройте VirtualBox, выберите default VM и откройте Settings.
  3. Откройте Storage, выберите текущий disk.vmdk и отпустите его (или удалите).
  4. Нажмите на Choose Virtual Hard Disk File... и найдите скопированный файл в F:\docker-image\
  5. Предупреждение: VirtualBox жалуется на старый UID VM, затем переходит в меню File, выбирает Virtual Media Manager... и освобождает или удаляет старый disk.vmdk
  6. Повторите 4., все готово!
  7. Если требуется вашей средой, выполните перемещение также для файла boot2docker.iso, папки моментальных снимков, захвата видео.
12
ron190

Поместите эти две команды при запуске терминала быстрого запуска Docker.

Я полагаю, что ваше новое местоположение - «D:\docker», а имя вашего нового компьютера - «docker1».

export MACHINE_STORAGE_PATH=D:\\docker

docker-machine create --driver=virtualbox docker1

Это должно создать новый компьютер с указанным именем в вашем новом месте.

11
ProEns08

Я не смог заставить работать метод переменной среды MACHINE_STORAGE_PATH. Он продолжал жаловаться на недостающие сертификаты при первой инициализации машины. Все еще на Windows 7, так что придется использовать docker-toolbox.

Я обошел проблему:

  1. Деинсталляция Docker Toolbox и перезагрузка компьютера
  2. Откройте приглашение администратора (найдите командную строку, удерживайте нажатой клавишу shift, выберите «Запуск от имени администратора»)
  3. Удаление .docker из% USERPROFILE%: rmdir/S% USERPROFILE% .docker
  4. Создайте папку с именем .docker в другом месте: mkdir a: \. Docker
  5. mklink/J% USERPROFILE% .docker a: \. docker
  6. Закрыть Admin Admin Prompt
  7. Переустановите Docker Toolbox
  8. Используйте ссылку Docker Quickstart Terminal, чтобы загрузить все.
  9. Kitematic можно открыть и сейчас (хотя мне пришлось выбрать опцию «Использовать виртуальную коробку» при первой ошибке).
8
paulecoyote

У меня были небольшие проблемы с любым из вышеперечисленных решений, но вот что сработало для меня:

  • определите переменную окружения MACHINE_STORAGE_PATH, чтобы указать на нужную вам папку __.directory/folder.
  • Установите docker-toolbox как обычно, если это работает для вас, тогда хорошо, но для меня оно все еще устанавливалось в каталоге .docker.
  • Чтобы это исправить, я остановился и удалил машину по умолчанию, которая была создана вместе с папкой .docker из каталога Users.
  • Отредактировал скрипт start.sh и добавил строку вверху:

например.

export MACHINE_STORAGE_PATH=D:\\Docker
  • Запустите ярлык терминала быстрого запуска Docker, который восстановит компьютер по умолчанию в нужной папке
2
DrGun

Я обнаружил, что многие из этих ответов были из данных, по крайней мере, они не работали в моей среде: win10 PRO, Docker Desktop Community 2.0.0.3. Наконец, я решил эту проблему с помощью этого метода:

  1. удалить докер

  2. откройте диспетчер Hyper-V (нажмите клавишу WIN, а затем введите «Hyper»)

  3. Измените настройки по умолчанию расположение виртуальных жестких дисков в Hyper-V (не в настройках VM) и подтвердите

  4. установить докер

  5. проверить расположение образа диска в дополнительных настройках настроек докера

0
lengxuehx

Эти ответы устарели, начиная с последней версии. Расположение настраивается в пользовательском интерфейсе настроек.

https://github.com/docker/for-win/issues/333

0
Paul Knopf