我的主机服务器需要代理才能与外界通信。它在 env 中定义为http_proxy=http://10.10.123.123:8080 https_proxy=http://10.10.123.123:8080. 我运行一个图像tensorflow/tensorflow,容器名为tf1.
在内部tf1(通过 exec 进入容器),我想使用 pip 安装一些包,例如 grpcio 和 tensorflow-serving-api,但因网络错误而失败。
如何在容器内使用主机的代理?我尝试过 exec with -eoption 但由于 docker 版本低而失败,所以我不知道它是否有效。
操作系统:CentOS 7.2,Docker:1.12.3
帮助我在inRUN之前的同一指令中导出代理设置apt-getDockerfile
FROM ubuntu
RUN export "http_proxy=http://host:port" \
&& export "https_proxy=http://host:port" \
&& apt-get update \
&& apt-get install -y SOME-PACKAGE
Run Code Online (Sandbox Code Playgroud)
之后容器中的 Ubuntu 系统就可以安装软件包了。
上述方法使代理仅可用于该RUN指令。
如果整个图像应使用代理,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" ]
Run Code Online (Sandbox Code Playgroud)
构建镜像$ docker image build -t test .并运行容器$ docker run test将显示代理持续存在
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7631 次 |
| 最近记录: |