Windows 10代理上的Docker无法传播到容器 [英] Docker at Windows 10 proxy propagation to containers not working

查看:107
本文介绍了Windows 10代理上的Docker无法传播到容器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我落后于合作代理并在Windows 10上运行docker。我已经根据



我能够提取图像,但是这些代理设置没有传播到容器,例如当我运行alpine env时,它不显示proxy conf。下面是我的输出

 λdocker run alpine env 
PATH = / usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin
HOSTNAME = 14fca5bee12f
HOME = / root

以下是根据文档所述的预期输出。





在构建以下docker文件时,我从高山容器中收到连接错误



Docker版本

  Docker版本17.12.0-ce,构建c97c6d6 

DockerFile

  FROM alpine:latest 
添加HelloWorld.class HelloWorld.class
RUN apk --update add openjdk8-jre
ENTRYPOI NT [ java, -Djava.security.egd = file:/ dev /./ urandom, HelloWorld]

错误

 步骤3/4:运行apk-更新添加openjdk8-jre 
--->在1205b24d5044中运行
获取http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
错误:http://dl-cdn.alpinelinux .org / alpine / v3.7 / main:无法连接到服务器(检查存储库文件)
警告:忽略APKINDEX.70c88391.tar.gz:无此类文件或目录
提取http:// dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
错误:http://dl-cdn.alpinelinux.org/alpine/v3.7/community:可以无法连接到服务器(检查存储库文件)
警告:忽略APKINDEX.5022a8a2.tar.gz:没有这样的文件或目录
错误:无法满足的约束:
openjdk8-jre(丢失):
的要求:world [openjdk8-jre]
命令'/ bin / sh -c apk --update add openjdk8-jre'返回了非零代码:1

将代理作为build-arg传递



我尝试了以下命令,它起作用了。还有其他方法可以自动传播代理文档中所述的代理设置(请参见上面的链接)

  docker build --tag docker-hello-world:latest。 --build-arg http_proxy = http://< username>:<密码> @proxy_address:proxy_port / --build-arg https_proxy = http://< username>:<密码> @proxy_address:proxy_port / --build-arg no_proxy = localhost,127.0.0.1 


解决方案

我有同样的问题。拉取映像有效,但置备容器无效。在这种情况下,解决方案是为Docker提供名为〜/ .docker / config.json 的配置文件,其中包含以下内容。

  {
代理:
{
默认:
{
httpProxy: http://proxy.server....com:8080,
httpsProxy: https://proxy.server.....com:8080
}
}
}

我希望这可以解决您的问题。


I am behind cooperate proxy and running docker on windows 10. I have setup the proxy on docker as per the documentation here.

I am able to pull images but these proxy settings are not propagating to containers e.g. when I run alpine env, it does not show proxy conf. Below is my output

λ docker run alpine env                                          
  PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  HOSTNAME=14fca5bee12f                                            
  HOME=/root                                                       

Following is the expected output as per the documentation.

On building following docker file, I get connection errors from alpine container

Docker Version

Docker version 17.12.0-ce, build c97c6d6

DockerFile

FROM alpine:latest
ADD HelloWorld.class HelloWorld.class
RUN apk --update add openjdk8-jre
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "HelloWorld"]

Error

Step 3/4 : RUN apk --update add openjdk8-jre                                                                      
 ---> Running in 1205b24d5044                                                                                     
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz                                       
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.7/main: could not connect to server (check repositories file)      
WARNING: Ignoring APKINDEX.70c88391.tar.gz: No such file or directory                                             
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz                                  
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.7/community: could not connect to server (check repositories file) 
WARNING: Ignoring APKINDEX.5022a8a2.tar.gz: No such file or directory                                             
ERROR: unsatisfiable constraints:                                                                                 
  openjdk8-jre (missing):                                                                                         
    required by: world[openjdk8-jre]                                                                              
The command '/bin/sh -c apk --update add openjdk8-jre' returned a non-zero code: 1                                

Passing Proxy as build-arg

I tried the following command and it worked. Is there any other way to automatically propagate the proxy settings as mentioned in documentation (see link above)

docker build --tag "docker-hello-world:latest" . --build-arg http_proxy=http://<username>:<password>@proxy_address:proxy_port/ --build-arg https_proxy=http://<username>:<password>@proxy_address:proxy_port/ --build-arg no_proxy=localhost,127.0.0.1

解决方案

I had the same problem. Pulling images was working but provisioning a container was not working. In this case the solution was to provide Docker with a configuration file named ~/.docker/config.json with the following contents.

{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://proxy.server....com:8080",
     "httpsProxy": "https://proxy.server.....com:8080"
   }
 }
}

I hope this will solve your problem.

这篇关于Windows 10代理上的Docker无法传播到容器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆