首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker插件ClientProtocolException (使用Docker工具箱的Windows 10 )

Docker插件ClientProtocolException (使用Docker工具箱的Windows 10 )
EN

Stack Overflow用户
提问于 2016-01-15 16:19:20
回答 3查看 4.8K关注 0票数 8

我正在尝试使用docker plugin(由spotify:https://github.com/spotify/docker-maven-plugin提供)构建一个坞映像,但事情并没有真正解决。一开始我得到了一个例外:

代码语言:javascript
复制
org.apache.http.conn.HttpHostConnectException: Connect to localhost:2375

我发现我必须创建一个env。变量来修复此值(https://github.com/spotify/docker-maven-plugin/issues/135):

代码语言:javascript
复制
set DOCKER_HOST=set DOCKER_HOST=tcp://192.168.99.100:2376

所以在设置了env之后。变量我一直得到这个ClientProtocolException:

代码语言:javascript
复制
[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.3.258:build (default-cli) on project docker_micro_maven: Exception caught: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: org.apache.http.client.ClientProtocolException: The server failed to respond with a valid HTTP response

我不知道如何解决这个问题,任何输入都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-07-15 14:24:21

您必须配置virtualbox端口转发,主机监听2375端口:

> VBoxManage modifyvm "default" --natpf1 "guestssh,tcp,,2375,,2376"

guestssh是端口转发的名称,您可以选择其名称。

如果VBoxManage未被识别,则可以将其替换为完整路径:

"pathVirtualBox\VBoxManage.exe“

然后,如果您遇到了“服务器无法使用有效的HTTP响应进行响应”这样的问题,请将证书文件从

"%USER%.docker\machines\certs“

"%USER%.docker“

因为docker plugin读取"%USER%.docker“中的文件(不要复制目录证书,只复制文件)。

我认为我们可以覆盖maven属性来替换端口2375和certs路径,但我仍然找不到它。

票数 5
EN

Stack Overflow用户

发布于 2017-01-12 19:23:57

通过以下方式修正了这一问题:

代码语言:javascript
复制
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.4.13</version>
            <configuration>
                <imageName>yourImageName</imageName>
                <dockerDirectory>src/main/docker</dockerDirectory>
                <dockerHost>https://192.168.99.100:2376</dockerHost>
                <dockerCertPath>/Users/your_user/.docker/machine/machines/default</dockerCertPath>
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>

重要的是这两个标签:

代码语言:javascript
复制
<dockerHost>https://192.168.99.100:2376</dockerHost>
<dockerCertPath>/Users/your_user/.docker/machine/machines/default</dockerCertPath>

我使用的是dockerfile,您必须用这个标记定义哪个路径:

代码语言:javascript
复制
<dockerDirectory>src/main/docker</dockerDirectory>  

现在,您可以通过以下方法构建jar并生成坞映像:

mvn包装码头:构建

票数 3
EN

Stack Overflow用户

发布于 2017-07-05 05:59:16

docker-机器env默认值

代码语言:javascript
复制
set DOCKER_HOST=tcp://192.168.99.100:2376
set DOCKER_MACHINE_NAME=default
set DOCKER_TLS_VERIFY=1
set DOCKER_TOOLBOX_INSTALL_PATH=C:\Program Files\Docker Toolbox
set DOCKER_CERT_PATH=C:\Users\panhl-a\.docker\machine\machines\default
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34815411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档