Machine: 使用最新的Docker创建机器失败

创建于 2017-06-29  ·  46评论  ·  资料来源: docker/machine

你好

docker-machine版本0.12.0,内部版本45c69ad

docker-machine create现在失败:

docker-machine -D create \
    --driver google \
    --google-project project \
    --google-zone us-east1-d \
    --google-machine-type n1-standard-1 \
    --google-disk-size 20 \
    --google-preemptible \
    build-vm2

已创建机器并安装了Docker,但无法启动。 该问题似乎与新版本的Docker通过https://get.docker.com上的新版本的安装脚本进行安装有关

Jun 29 00:50:08 build-vm2 docker[5705]: `docker daemon` is not supported on Linux. Please run `dockerd` directly

要么

Jun 29 00:56:12 build-vm2 dockerd[6407]: Error starting daemon: error initializing graphdriver: driver not supported

除非我更改:

/usr/bin/docker daemon -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver aufs --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=google

/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=google

/etc/systemd/system/docker.service.d/10-machine.conf

areprovision kinbug

最有用的评论

我正在使用它作为解决方法:

docker-machine创建\
--driver amazonec2 \
--engine-install-url = https://web.archive.org/web/20170623081500/https://get.docker.com

要么
--engine-install-url = https://releases.rancher.com/install-docker/17.05.sh

所有46条评论

这里同样的问题

docker-machine create 
    --driver=digitalocean
    --digitalocean-access-token=XXX 
    --digitalocean-size=2gb
    machinename

昨天,同一命令在Docker 17.05.0-ce版本中运行良好
今天我的新计算机的docker无法启动(17.06.0-ce)
我已经尝试了多次。

我也可以确认这一点:

dm create -d digitalocean \
--digitalocean-access-token XXX \
--digitalocean-size 4gb machine

我正在使用它作为解决方法:

docker-machine创建\
--driver amazonec2 \
--engine-install-url = https://web.archive.org/web/20170623081500/https://get.docker.com

要么
--engine-install-url = https://releases.rancher.com/install-docker/17.05.sh

我有同样的问题。

docker版本:Docker版本17.06.0-ce
docker-machine版本:0.12.0,构建45c69ad

docker-machine create --driver amazonec2 --amazonec2-region eu-west-1 --amazonec2-instance-type t2.small --amazonec2-access-key XXX --amazonec2-secret-key XXX test-create-machine

6月29日12:26:56 ip-172-31-10-149 systemd [1]:启动Docker应用容器引擎...
Jun 29 12:26:56 ip-172-31-10-149 docker [5234]:Linux不支持docker daemon 。 请直接运行dockerd

Linux不支持docker daemon 。 请直接运行dockerd

我能够与此PR一起使用
https://github.com/docker/machine/pull/4128

只需使用此修复程序编译docker-machine,一切便会再次运行

@gnomus super,这很有趣! 我不知道为什么它可以在17.05.0-ce下运行。

@therealppa haahaha太棒了! 我想知道如何获取该脚本的旧版本,或者实时脚本是否需要使用参数来安装旧版本。 web.archive.org绝对不是我想到的。

@dminkovsky我认为它不会永远有效,如果您查看脚本,它实际上并没有在任何地方指定版本。

@therealppa @dminkovsky长期的解决方法是将脚本的第457行从

$sh_c 'apt-get install -y -q docker-ce'

$sh_c "apt-get install -y -q docker-ce=17.05.0~ce-0~$lsb_dist-$dist_version"

希望固定版本的docker-machine即将发布。

我也是
我们通过使用文件/etc/systemd/system/docker.service.d/10-machine.conf中的“ dockerd”而不是“ docker daemon”来使其工作

@ fabio-barile --storage-driver aufs arg怎么样? 除非我也摆脱不了,否则我不会开始。

@dminkovsky我在使用gitlab自动缩放ci时遇到了相同的问题,遇到了aufs问题+ dockerd问题,必须通过在存储驱动程序中指定overlay来解决它。

除了存储驱动程序问题外,我还看到gitlab-runner(9.3.0)创建的证书的验证错误。 @JustEra您是否遇到过同一问题,或者我是唯一的一个吗?

http: TLS handshake error from ...:
 tls:
  failed to verify client's certificate: x509:
   certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "unknown")
ERROR: Error creating machine:
 Error checking the host:
  Error checking and/or regenerating the certs:
   There was an error validating certificates for host "...":
    remote error: tls: bad certificate  driver=amazonec2 name=...

对我来说,这是固定的存储驱动程序问题(只是删除了该参数;仅适用于systemd)。 在https://github.com/docker/machine/pull/4128上应用并重新构建:

diff --git a/libmachine/provision/systemd.go b/libmachine/provision/systemd.go
index 90d02603..05d63bb5 100644
--- a/libmachine/provision/systemd.go
+++ b/libmachine/provision/systemd.go
@@ -53,7 +53,7 @@ func (p *SystemdProvisioner) GenerateDockerOptions(dockerPort int) (*DockerOptio

        engineConfigTmpl := `[Service]
 ExecStart=
-ExecStart=/usr/bin/` + arg + ` -H tcp://0.0.0.0:{{.DockerPort}} -H unix:///var/run/docker.sock --storage-driver {{.EngineOptions.StorageDriver}} --tlsverify --tlscacert {{.AuthOptions.CaCertRemotePath}} --tlscert {{.AuthOptions.ServerCertRemotePath}} --tlskey {{.AuthOptions.ServerKeyRemotePath}} {{ range .EngineOptions.Labels }}--label {{.}} {{ end }}{{ range .EngineOptions.InsecureRegistry }}--insecure-registry {{.}} {{ end }}{{ range .EngineOptions.RegistryMirror }}--registry-mirror {{.}} {{ end }}{{ range .EngineOptions.ArbitraryFlags }}--{{.}} {{ end }}
+ExecStart=/usr/bin/` + arg + ` -H tcp://0.0.0.0:{{.DockerPort}} -H unix:///var/run/docker.sock --tlsverify --tlscacert {{.AuthOptions.CaCertRemotePath}} --tlscert {{.AuthOptions.ServerCertRemotePath}} --tlskey {{.AuthOptions.ServerKeyRemotePath}} {{ range .EngineOptions.Labels }}--label {{.}} {{ end }}{{ range .EngineOptions.InsecureRegistry }}--insecure-registry {{.}} {{ end }}{{ range .EngineOptions.RegistryMirror }}--registry-mirror {{.}} {{ end }}{{ range .EngineOptions.ArbitraryFlags }}--{{.}} {{ end }}

对于任何想要特定旧版本的人,我们(Rancher)维护略作修改的get.docker.com脚本以安装每个脚本:

http://rancher.com/docs/rancher/v1.6/en/hosts/#supported -docker-versions

上面的@ fabio-barile是完全正确的。 无法想象,“测试”是如何让这种事情发出的。

此处更多信息: https :

@ vincent99 ...总是喜欢你们的声音,谢谢。

+1
我每天都回来查看新的docker-machine版本...这个错误杀死了我:-)

现在,我添加/etc/systemd/system/docker.service.d/20-machine.conf,它使用正确的命令行覆盖10-machine.conf。 这样,通常不会破坏它的其他docker-machine命令不会。 当然,在发行版中修复该问题所需的时间越长,我付出的所有工作就越多!

感谢您提供有关此问题的详细信息-我们正在调查该问题,以找出问题所在。

https://github.com/docker/for-linux/issues/11#issuecomment -312143765相关

因此,这与get.docker.com的安装脚本无关,而与版本比较无法正常工作有关,并且17.06.0-ce是第一个正式弃用docker daemon ,因此我们看到失败。

这个PR(docker / machine#4128)似乎可以解决这个问题,我将在下午晚些时候进行PR,为其他比较功能添加测试,这样我们就不会再遇到这种情况了。

@seemethere听起来不错,谢谢。 喜欢听到有关测试的消息。

一位公关的差异对我来说似乎有些奇怪,但认为你们会照顾好这一点。

0.12.1版本修复了该错误。 感谢大家的耐心配合和帮助。

@ shin-感谢您的快速修复! 期待使用它。

@ shin-此补丁修复了docker daemon -> dockerd部分,但是由于以下原因,Docker仍然无法在计算机上启动

dockerd[6407]: Error starting daemon: error initializing graphdriver: driver not supported

@ shin-我能够通过添加--engine-storage-driver=overlay (https://github.com/docker/machine/issues/3895#issuecomment-270934728)解决存储驱动程序问题。 所以这是我的整个docker-machine调用。

docker-machine -D create \
    --driver google \
    --google-project $project \
    --google-zone $zone \
    --google-machine-type $type \
    --google-disk-size $size \
    --google-preemptible \
    --engine-storage-driver=overlay \
    $name

没有--engine-storage-driver=overlay仍然会失败

dockerd[6407]: Error starting daemon: error initializing graphdriver: driver not supported

和以前一样,在#3895中

您是否看到解释其崩溃原因的日志?

2017年7月7日星期五,上午9:39,Seweryn Zeman邮件通知@ github.com
写道:

@ shin- https://github.com/shin-不幸的是0.12.1并没有解决这个问题
为了我。

$泊坞窗-v
Docker版本17.06.0-CE,内部版本02c1d87
$ docker-machine -v
docker-machine版本0.12.1,内部版本c8b17e8

我正在使用--amazonec2-region = eu-central-1创建amazonec2机器
为我创建了一个ami-fe408091。

docker-machine create的输出为:

运行预创建检查...
正在建立机器...
(test-dm)正在启动实例...
等待机器运行,这可能需要几分钟的时间...
正在检测创建的​​实例的操作系统...
等待SSH可用...
正在检测供应商...
使用ubuntu(systemd)进行配置...
安装Docker ...
将证书复制到本地计算机目录...
将证书复制到远程计算机...
在远程守护程序上设置Docker配置...
错误创建机器:运行配置错误:ssh命令错误:
命令:sudo systemctl -f启动docker
错误:退出状态1
输出:docker.service的作业失败,因为控制进程退出并显示错误代码。 有关详细信息,请参见“ systemctl status docker.service”和“ journalctl -xe”。

已启动计算机的输出为:

$ systemctl状态docker.service
●docker.service-Docker应用容器引擎
已加载:已加载(/lib/systemd/system/docker.service;已启用;供应商预设:已启用)
插入:/etc/systemd/system/docker.service.d
└─10-machine.conf
活动:自2017年7月7日星期五以来不活动(无效)(结果:退出代码); 36年前
文件: https
进程:5522 ExecStart = / usr / bin / dockerd -H tcp://0.0.0.0 :2376 -H unix:///var/run/docker.sock-存储驱动程序aufs --tlsverify --tlscacer
主PID:5522(代码=已退出,状态= 1 /失败)

Jul 07 13:34:46 test-dm systemd [1]:docker.service:设备进入失败状态。
Jul 07 13:34:46 test-dm systemd [1]:docker.service:失败,结果为“退出代码”。
7月7日13:34:47 test-dm systemd [1]:docker.service:服务延期超时,计划重新启动。
Jul 07 13:34:47 test-dm systemd [1]:停止了Docker Application Container Engine。
7月7日13:34:47 test-dm systemd [1]:docker.service:启动请求重复太快。
Jul 07 13:34:47 test-dm systemd [1]:无法启动Docker Application Container Engine。

-
您收到此邮件是因为有人提到您。
直接回复此电子邮件,在GitHub上查看
https://github.com/docker/machine/issues/4156#issuecomment-313683311
或使线程静音
https://github.com/notifications/unsubscribe-auth/AANWZXHODzL3Lumb5NqlmXwnSi3VZBBkks5sLjUlgaJpZM4OIt7R

@dminkovsky感谢您的解决方法。 我决定使用overlay2因为它是驱动程序的最新版本。

您知道是否还有docker-machine rm {instance-name}的解决方法吗? 我遇到与EOF相关的错误,它在AWS云上留下了密钥对的残余,使我无法重新创建实例。

抱歉,我经过艰难的调试后删除了消息,并注意到实际上是由于@dminkovsky写道:

没有--engine-storage-driver=overlay仍然会失败
dockerd[6407]: Error starting daemon: error initializing graphdriver: driver not supported
和以前一样,在#3895中

对于使用AUFS引擎存储的这一特殊情况,我们是否有任何问题?

@cadavre

对于使用AUFS引擎存储的这一特殊情况,我们是否有任何问题?

我看过https://github.com/docker/machine/issues/3895 ,它是开放的,您也已引用过。

有趣的是,我不再看到此错误。 我得到--storage-driver overlay

@drujensen

我决定使用overlay2,因为它是驱动程序的最新版本。

哦,很酷,谢谢,我不知道。

您是否知道docker-machine rm {instance-name}是否也有解决方法?

不知道,我还没有那个错误。 当计算机终止并且无法响应时,我使用docker-machine rm -f 。 使用-fdocker-machine rm会删除VM和关联的磁盘,即使它无法到达盒子。

@dminkovsky您可以为此创建新刊物吗? 它与dockerd / docker daemon问题无关,因此我们也应将其分开对待。 并请注明您要配置的操作系统:)

@ shin-我很好。 docker-machine现在为我工作100%。 你指的是overlay2的东西吗?

我有关移走机器的其他问题已在PR#4187中解决。 谢谢。

@dminkovsky对不起-是的,您在这里提到的那个

@shin-https://github.com/docker/machine/issues/4168中遇到问题后,我试图重新创建我的登台服务器,并发现报告了docker-machine create的问题在多个近期门票中:

这些都相关吗? 在这里开始追踪这些? 我可以确认这个问题今天仍在发生。

@ shin-docker-machine v0.12.1仍然显示相同的问题

我仍然遇到与0.12.1版本相同的问题。

screen shot 2017-07-27 at 11 32 00 am

请更新到在github上找到的最新版本:
https://github.com/docker/machine/releases/tag/v0.12.2

@eamontaaffe @ajwah @costa

谢谢@dminkovsky我今天也在0.12.2上收到此错误!!! 好像10-machine.conf文件在更新期间不会被覆盖

别客气!

我在存储引擎的命令行选项中指定了“ overlay”,并且
我的机器启动。

ср,2月。 2017年 в12:05,Denis [email protected]

谢谢@dminkovsky https://github.com/dminkovsky我正在得到这个
今天在0.12.2上也有错误!!! 好像10-machine.conf文件没有
在更新期间被覆盖

-
您收到此邮件是因为有人提到您。
直接回复此电子邮件,在GitHub上查看
https://github.com/docker/machine/issues/4156#issuecomment-319719085
或使线程静音
https://github.com/notifications/unsubscribe-auth/AANWZSYqy1uGhWeXozx35OnFhPRSb144ks5sUJ5YgaJpZM4OIt7R

如果使用内核> 4.4的系统,建议使用overlay2

我无法让机器使用overlay2,而此用例
幸运的是,只是建筑/ CD

ср,2月。 2017年 12月36日,Seweryn Zeman [email protected]

如果使用内核> 4.4的系统,建议使用overlay2。

-
您收到此邮件是因为有人提到您。
直接回复此电子邮件,在GitHub上查看
https://github.com/docker/machine/issues/4156#issuecomment-319727847
或使线程静音
https://github.com/notifications/unsubscribe-auth/AANWZXLGHjLvfOOAgmBWV0zOEBDZBdSVks5sUKWBgaJpZM4OIt7R

也在0.12.2上收到此错误:-(

这个还开!

我仍然看到docker-machine 0.12.2 。 我通过卸载预配置机器( sudo apt purge docker-ce && sudo apt autoremove )上的docker向前移动,并使用了上面列出的适用于我的版本的正确Rancher安装脚本

出于某种原因,这仍然无法启动docker,但是重新启动计算机即可解决。

可以确认,还是一样的错误

@jhartma我想有必要升级到最新版本(Linux映像)并且可以工作

@kassanmoor似乎我的AMI在AWS上不支持它,我将其与默认值一起使用

此页面是否有帮助?
0 / 5 - 0 等级