簡體   English   中英

docker-machine create-創建機器時出錯:運行配置錯誤:ssh命令錯誤

[英]docker-machine create - Error creating machine: Error running provisioning: ssh command error

我正在關注Docker入門文檔,但我陷入了第4部分的開頭( https://docs.docker.com/get-started/part4/ )。

我在Windows 10上,應該設置幾個本地VM。 我創建了名為"myswitch"的虛擬"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 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

有什么建議么?

您是在Windows上運行Docker Toolbox還是Docker?

如果它的Docker在Windows上,我會看到docker-machine 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守護進程不在此位置。

首先,請確保Hyperv的外部虛擬交換機已連接到適當的以太網(或)Wi-Fi適配器。 參考下圖

在此處輸入圖片說明

現在,在Windows powershell或cmd(以管理員身份)中運行以下命令:

docker-machine --native-ssh create -d hyperv --hyperv-virtual-switch "Primary Virtual Switch" myvm1

使用--native-ssh可以防止任何隨機的ssh.exe從“其他地方”引起問題(有關詳細信息,請參閱https://github.com/docker/machine/issues/3511 )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM