докер-машина не может создать более двух виртуальных машин - PullRequest
2 голосов
/ 13 марта 2019

Я пытаюсь создать Docker Swarm с несколькими узлами на моем ПК с Windows 10.Согласно официальной документации Docker , мы должны использовать docker-machine create , чтобы сначала создать несколько виртуальных машин.Я следовал документации, чтобы создать виртуальный коммутатор " myswitch " и использовать следующие команды:

docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm1
docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm2

успешно создал две виртуальные машины:

 PS C:\Users\richard> docker-machine ls
 NAME    ACTIVE   DRIVER   STATE     URL                        SWARM   DOCKER     ERRORS
 myvm1   -        hyperv   Running   tcp://192.168.1.125:2376           v18.09.3
 myvm2   -        hyperv   Running   tcp://192.168.1.128:2376           v18.09.3

Но когда япопробуйте создать третий (3 узла подходят для кластера Swarm), по какой-то причине он всегда дает сбой:

PS C:\Users\richard> docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm3
Running pre-create checks...
Creating machine...
(myvm3) Copying C:\Users\richard\.docker\machine\cache\boot2docker.iso to C:\Users\rudeng\.docker\machine\machines\myvm3\boot2docker.iso...
(myvm3) Creating SSH key...
(myvm3) Creating VM...
(myvm3) Using switch "myswitch"
(myvm3) Creating VHD
(myvm3) Starting VM...
Error creating machine: Error in driver during machine creation: exit status 1

Я провел некоторые исследования в Интернете.Одной из возможных причин может быть то, что недостаточно памяти, поэтому третья виртуальная машина не может запуститься должным образом.Если мы посмотрим на следующий снимок экрана диспетчера Hyper-V в Windows, то увидим, что виртуальная машина докера по умолчанию занимает 2G, а каждая новая виртуальная машина использует 1G по умолчанию.Мой компьютер имеет 8G памяти, я не уверен, как Docker использует ресурс ПК и сколько ресурсов Docker собирается использовать.

enter image description here

Итак, я попытался удалить все созданные виртуальные машины, а затем создать новую виртуальную машину только с объемом памяти 0,5 ГБ, но он застрял на "ожидании"host to start "и не удалось создать нужную виртуальную машину.

PS C:\Users\richard> docker-machine create -d hyperv --hyperv-memory "512" --hyperv-virtual-switch "myswitch" myvm3
Running pre-create checks...
Creating machine...
(myvm2) Copying C:\Users\richard\.docker\machine\cache\boot2docker.iso to C:\Users\rudeng\.docker\machine\machines\myvm2\boot2docker.iso...
(myvm2) Creating SSH key...
(myvm2) Creating VM...
(myvm2) Using switch "myswitch"
(myvm2) Creating VHD
(myvm2) Starting VM...
(myvm2) Waiting for host to start...

Мой вопрос:

  1. Какова потенциальная причина сбоя при создании третьей виртуальной машины в этом случае?
  2. А в чем проблема создания виртуальной машины только с объемом памяти 0,5 ГБ?
  3. Что мне делать в любом случае, в этом случае, чтобы создать как минимум 3 виртуальные машины?

Заранее спасибо!

1 Ответ

2 голосов
/ 13 марта 2019

Сначала я бы проверил, не превышают ли мои ограничения ОЗУ.

Для этого откройте командную строку и выполните команду systeminfo

Вы увидите несколько строк. Важными из них являются Total Physical Memory и Available Physical Memory.

Если у вас есть 8GB от оперативной памяти и 2GB (это предположение), скорее всего, всегда используется вашей машиной, вы, вероятно, приближаетесь к пределам с тем, что вы показали в своем посте 4GB использование.

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

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

Более подробную информацию можно найти здесь .

какова потенциальная причина сбоя при создании третьей виртуальной машины в этом случае?

Сначала проверьте вашу RAM. Как показали ваши исследования, это, скорее всего, так.

А в чем проблема создания виртуальной машины только с памятью 0.5G?

Та же проблема, что у вас сейчас. У ВМ нет места для выполнения своих задач.

Что я должен делать в этом случае, чтобы создать как минимум 3 виртуальные машины?

Звучит так, будто вы хотите увеличить объем оперативной памяти. Проблема (если не доказано иное) является физическим ограничением.

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