在docker容器中设置代理

在docker容器中设置代理,docker,proxy,Docker,Proxy,我正在尝试创建Docker容器,需要在其中使用apt get install命令。现在看起来是这样的: FROM ubuntu:18.04 RUN apt-get update && apt-get install -y \ build-essential \ cmake 不幸的是,当我试图构建它时,我得到了一些关于代理的错误。我在公司代理的背后工作,我希望我的容器能在这种条件下正常工作 我在网上读了一些书,没有什么选择: 选项1 FROM ub

我正在尝试创建Docker容器,需要在其中使用apt get install命令。现在看起来是这样的:

FROM ubuntu:18.04
RUN apt-get update && apt-get install -y \
        build-essential \
        cmake
不幸的是,当我试图构建它时,我得到了一些关于代理的错误。我在公司代理的背后工作,我希望我的容器能在这种条件下正常工作

我在网上读了一些书,没有什么选择:

选项1

FROM ubuntu:18.04
ENV http_proxy <HTTP_PROXY>
ENV https_proxy <HTTPS_PROXY>
RUN apt-get update && apt-get upgrade

选项3

docker build --build-arg http_proxy=$http_proxy 
--build-arg https_proxy=$https_proxy -t mytest_docker .
基于

但是,这些选项都不起作用,我总是遇到同样的错误:

Err:1 http://archive.ubuntu.com/ubuntu bionic InRelease
  Temporary failure resolving 'corporate_proxy'
Err:2 http://security.ubuntu.com/ubuntu bionic-security InRelease
  Temporary failure resolving 'corporate_proxy'
Err:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease
  Temporary failure resolving 'corporate_proxy'
Err:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease
  Temporary failure resolving 'corporate_proxy'
Reading package lists...
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/bionic/InRelease  Temporary failure resolving 'corporate_proxy'
公司代理只是实际(工作)代理的占位符

我确信代理地址是正确的,并且正在主机系统上工作,因为我通常可以下载所有内容。问题仅在于此docker映像

有什么建议可以解决吗


编辑#1

FROM ubuntu:18.04
ENV http_proxy <HTTP_PROXY>
ENV https_proxy <HTTPS_PROXY>
RUN apt-get update && apt-get upgrade
根据@Raoslaw Szamszur的回答,我做了更多的调试。不幸的是,结果仍然是一样的

我已经向config.json文件添加了值,并重新启动了守护进程。接下来我又试了一次,用同样的结果做了所有的选择

我还想使用以下代码运行Ubuntu docker:

docker run --name ubunut -it -p <port_http>:<port_http> -p <port_https>:<port_https> ubuntu:18.04
docker-run——名称ubunut-it-p:-p:ubuntu:18.04
一旦它运行,apt get将无法下载任何内容,并打印出与以前相同的错误类型

这也是这个容器在列表中的外观

docker container ls --all
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                          NAMES
e6fdeaec3ad9        ubuntu:18.04        "/bin/bash"         3 minutes ago       Up 3 minutes        0.0.0.0:<http_port>-<https_port>-><http_port>-<https_port>/tcp   ubunut
docker容器ls--全部
容器ID映像命令已创建状态端口名称
e6fdeaec3ad9 ubuntu:18.04“/bin/bash”3分钟前启动3分钟0.0.0.0:-->-/tcp ubunut

由于问题可能很复杂,我将尝试在此处进行故障排除

选项1

FROM ubuntu:18.04
ENV http_proxy <HTTP_PROXY>
ENV https_proxy <HTTPS_PROXY>
RUN apt-get update && apt-get upgrade
首先尝试从ubuntu映像运行clean容器,并尝试使用代理连接。但别忘了绑定端口:

docker run -dit --name=<conatiner-name> -p <proxy_port>:<proxy_port> ubuntu
尝试添加以下内容:

{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://corporate_proxy:port",
     "httpsProxy": "http://corporate_proxy:port",
     "noProxy": "*.test.example.com,.example2.com"
   }
 }
}


我很难重现这个问题,我会继续考虑其他可能性

谢谢你的建议。我已经编辑了我的答案以回应他们。@sebap123尝试如下
docker run--name ubunut-it-p:-p:--env http_proxy=http://corporate_proxy:port --环境https_代理=http://corporate_proxy:port ubuntu:18.04
你能从容器中ping吗?或者网络上的任何东西?