在Docker容器中使用代理
我的主机服务器需要一个代理来与外部世界对话。它是在env-like在Docker容器中使用代理,docker,http-proxy,Docker,Http Proxy,我的主机服务器需要一个代理来与外部世界对话。它是在env-likehttp\u-proxy中定义的=http://10.10.123.123:8080 https\u代理=http://10.10.123.123:8080。 我运行一个名为tf1的图像tensorflow/tensorflow 在tf1(由exec放入容器中)内部,我想安装一些包,比如带有pip的grpcio和tensorflow服务api,但由于网络错误而失败 如何在容器中使用主机的代理?我尝试过使用-e选项执行exec,但由
http\u-proxy中定义的=http://10.10.123.123:8080 https\u代理=http://10.10.123.123:8080
。
我运行一个名为tf1
的图像tensorflow/tensorflow
在tf1
(由exec放入容器中)内部,我想安装一些包,比如带有pip的grpcio和tensorflow服务api,但由于网络错误而失败
如何在容器中使用主机的代理?我尝试过使用-e
选项执行exec,但由于docker版本较低而失败,因此我不知道它是否有效
OS:CentOS 7.2,Docker:1.12.3我对使用代理的建议是安装一个工具,将所有流量透明地路由到代理。 Linux的一个流行工具是 如图所示,可以在主机上安装Redsocks。 如果您不想手动安装,还有一种情况
一旦你安装了redsocks,来自主机或容器的所有流量都将重定向到代理,您无需再配置代理环境变量。您可以使用docker proxy在容器内使用主机代理,从帮助我在
apt进入之前以相同的运行指令导出代理设置Dockerfile
FROM ubuntu
RUN export "http_proxy=http://host:port" \
&& export "https_proxy=http://host:port" \
&& apt-get update \
&& apt-get install -y SOME-PACKAGE
之后,容器中的Ubuntu系统能够安装这些软件包
注意的方式使代理仅可用于此运行
指令
如果整个图像应使用代理,则应使用ENV
指令:
FROM ubuntu
ENV http_proxy http://host:port
ENV https_proxy http://host:port
RUN apt-get update \
&& apt-get install -y SOME-PACKAGE
ENTRYPOINT [ "printenv" ]
构建映像$docker image build-t测试。
并运行容器$docker run测试将显示代理持久存在
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=8513fc1fb635
http_proxy=http://host:port
https_proxy=http://host:port
HOME=/root
它的使用说明是,首先检查代码,然后使用:sudo docker build-t docker proxy构建。
然后使用:/run.sh
运行。但是如果需要apt-get-update
etc命令但代理尚未建立,如何从ubuntu:14.04
构建图像?如果要从下载生成的映像--如何正确启动?这还不清楚。顺便说一句,我不确定这是否适用于Windows主机