在Docker容器中使用代理
我的主机服务器需要一个代理与外部世界交谈。 它在env中定义,如http_proxy=http://10.10.123.123:8080 https_proxy=http://10.10.123.123:8080
。 我运行一个图像tensorflow/tensorflow
,名为tf1
容器。
在tf1
里面(通过执行到容器中),我想用pip安装一些像grpcio和tensorflow-serving-api这样的包,但是会出现networking错误。
我怎样才能使用容器内的主机的代理? 我已经尝试执行与-e
选项,但由于低版本的docker,失败,所以我不知道它是否工作。
OS:CentOS 7.2,Docker:1.12.3
您可以使用docker-proxy从https://github.com/silarsis/docker-proxy使用容器内的主机代理
我build议使用代理是安装一个工具,透明地将所有stream量路由到代理。 一个stream行的Linux工具是redsocks 。
Redsocks可以安装在主机上,如图所示。 如果你不想手动安装,还有一个docker镜像来获得redsocks 。
一旦安装了redsocks,来自主机或容器的所有stream量都将被redirect到代理,并且不需要再configuration代理envvariables。