Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Docker容器中使用代理_Docker_Http Proxy - Fatal编程技术网

在Docker容器中使用代理

在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,但由

我的主机服务器需要一个代理来与外部世界对话。它是在env-like
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主机