docker-machine create - Ошибка создания машины: ошибка при подготовке: ошибка команды ssh - PullRequest
0 голосов
/ 01 июня 2019

Я слежу за докером по началу работы, и я застрял в начале части 4 (https://docs.docker.com/get-started/part4/).

У меня Windows 10, и я должен установить пару локальных виртуальных машин. Я создал виртуальный коммутатор с именем "myswitch", но когда я запускаю

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

это дает мне следующую ошибку

c:\srv> docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm4
Running pre-create checks...
Creating machine...
(myvm4) Copying C:\Users\bjorn\.docker\machine\cache\boot2docker.iso to C:\Users\bjorn\.docker\machine\machines\myvm4\boot2docker.iso...
(myvm4) Creating SSH key...
(myvm4) Creating VM...
(myvm4) Using switch "myswitch"
(myvm4) Creating VHD
(myvm4) Starting VM...
(myvm4) Waiting for host to start...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with boot2docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Error creating machine: Error running provisioning: ssh command error:
command : printf '%s' '-----BEGIN CERTIFICATE-----
MIICzjCCAbagAwIBAgIRAKtTNS/nB+OzHZ7r0PuiTpkwDQYJKoZIhvcNAQELBQAw
EDEOMAwGA1UEChMFYmpvcm4wHhcNMTkwNjAxMTY1NTAwWhcNMjIwNTE2MTY1NTAw
WjAQMQ4wDAYDVQQKEwViam9ybjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBAJ4wTk7sUwVwzTvPVbTiL/pTEWxRFWFO6gxU1BuNXIk1fzLpT7wMy/R48md1
DdGgkAUH/FgnjyKY9YnIpvlLt+HpuZjBxBRWYGJZDkV2QzvLb6dOLgev3i/7/vN+
1OWrr3OkfDCyXsSF1r2/6mMtk3wNtWiV4vdqjM7XEFrfWN6vLDCxGXqN5S0U94D+
vCbZuh1w51M3ZTvdC8D9nA0PVoh2detHsNGXdv7AuunYBmWGahr8OZT45RhtYksx
nXyU3HjjUyugscsuQp3y9Iwo4qP1eoWX+qJXuXlc7gznKHNx1D+nr9qRanEj3YUF
JspjEJc4H6J6TqVn+u/JfjrH6ZsCAwEAAaMjMCEwDgYDVR0PAQH/BAQDAgKsMA8G
A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBABFHjhI+OkVNdwM2qLL6
1wA7aeaLUi8GXUXjXjOxS3Vr7IZIejmvoAt/R6IpCmwFt2lL73JT7LB2cIR8hIVF
ZoQdTi1LBPyS2x0pKi5PHGN6O5UEVN0Y2aLkgpFxUZhtgqHTkeOaEPdWY6NHGWYR
8THT6LTT1cto/bqq07L5I+SsYwq/V+5JJhajqGLaoRonle4IUoDZTus4qaSbxcv/
ZO4rUW/w5Krn+QT31ku5pblAhGiNWtTQsP7+fQnfHT01PM0Hh1hBukAjRY2lImEo
URTKDR96IC3P2XFymXBcqHhZv13EKQQN5A8honxs10KxixlYhXTCg3W27L2FwzkU
WGo=
-----END CERTIFICATE-----
' | sudo tee /var/lib/boot2docker/ca.pem
err     : exit status 1
output  : bash: -c: line 0: unexpected EOF while looking for matching `''
bash: -c: line 1: syntax error: unexpected end of file

Я работаю в командной оболочке с повышенными правами (я также пытался использовать powershell в качестве администратора, с точно таким же результатом).

docker-machine ls дает следующий результат (myvm1 и -2 с моей первой попытки):

c:\srv> docker-machine ls
NAME    ACTIVE   DRIVER   STATE     URL                        SWARM   DOCKER    ERRORS
myvm1   -        hyperv                                                Unknown
myvm2   -        hyperv                                                Unknown
myvm3   -        hyperv   Running   tcp://192.168.1.140:2376           Unknown   Unable to query docker version: Get https://192.168.1.140:2376/v1.15/version: dial tcp 192.168.1.140:2376: connectex: No connection could be made because the target machine actively refused it.
myvm4   -        hyperv   Running   tcp://192.168.1.141:2376           Unknown   Unable to query docker version: Get https://192.168.1.141:2376/v1.15/version: dial tcp 192.168.1.141:2376: connectex: No connection could be made because the target machine actively refused it.

Я не могу перейти к следующему шагу в руководстве:

c:\srv> docker-machine ssh myvm3 "docker swarm init --advertise-addr 192.168.1.140"
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
exit status 1

Есть предложения?

1 Ответ

1 голос
/ 01 июня 2019

Запускаете ли вы Docker Toolbox или Docker в Windows?

Если его Docker в Windows, я вижу, что docker-машина create направлена ​​на создание сертификатов по адресу "/var/lib/boot2docker/ca.pem",Это специальное расположение для boot2docker. Я склонен полагать, что либо в вашей системе остались некоторые признаки Docker Toolbox, либо вам нужно очистить следующие переменные env.

DOCKER_TLS_VERIFY

DOCKER_CERT_PATH

DOCKER_HOST

DOCKER_TOOLBOX_INSTALL_PATH

Сбой инициализации Docker, так как не удается найти сокет в unix: ///var/run/docker.sock, что ожидается, поскольку демон docker являетсяне там.

...