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"
的虚拟交换机,但是当我 运行
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
我运行正在使用提升的命令shell(我也尝试过以管理员身份使用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
有什么建议吗?
你是 运行 Docker 工具箱还是 Docker windows?
如果它在 windows 上的 Docker,我看到 docker-machine 创建被误导为在“/var/lib/boot2docker/ca.pem”生成证书。这是一个特定于 boot2docker 的 location.I 我倾向于认为要么在您的系统中遗留了一些 Docker 工具箱的痕迹,要么您需要清除以下环境变量。
DOCKER_TLS_VERIFY
DOCKER_CERT_PATH
DOCKER_HOST
DOCKER_TOOLBOX_INSTALL_PATH
Docker init 会因为在 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
可防止 "somewhere else" 中的任何随机 ssh.exe
引起问题(c.f。https://github.com/docker/machine/issues/3511 了解详情)。
我正在关注 docker 入门文档,但我在第 4 部分的开头卡住了 (https://docs.docker.com/get-started/part4/)。
我在 Windows 10,我应该设置几个本地 VM。我已经创建了名为 "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
我运行正在使用提升的命令shell(我也尝试过以管理员身份使用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
有什么建议吗?
你是 运行 Docker 工具箱还是 Docker windows?
如果它在 windows 上的 Docker,我看到 docker-machine 创建被误导为在“/var/lib/boot2docker/ca.pem”生成证书。这是一个特定于 boot2docker 的 location.I 我倾向于认为要么在您的系统中遗留了一些 Docker 工具箱的痕迹,要么您需要清除以下环境变量。
DOCKER_TLS_VERIFY
DOCKER_CERT_PATH
DOCKER_HOST
DOCKER_TOOLBOX_INSTALL_PATH
Docker init 会因为在 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
可防止 "somewhere else" 中的任何随机 ssh.exe
引起问题(c.f。https://github.com/docker/machine/issues/3511 了解详情)。