这可能是一个简单的问题,但是无论如何。
我创建了一个Dockerfile
,第一行是:FROM python:2.7-slim
。该映像不在我的本地系统中,因此可以从存储库中下载它,对吗?
但是,我的代理设置不允许我下载图像。因此,我的问题是,有没有可能我可以声明代理设置以下载基本映像?
主机运行Ubuntu 16.04。
答案 0 :(得分:0)
我不确定您实际上在问什么。因此,我将尝试提供有关docker
和代理设置的一些常规信息。
正如您正确提到的那样:
我创建了一个Dockerfile,第一行是:
FROM python:2.7-slim
。该图像不在我的本地系统中,因此它将从存储库中下载它。
实际上是从官方docker存储库(如果已设置,则为私有)下载主机中不存在映像的情况。
如果使用代理,则应提供docker daemon代理设置。为此,请执行以下步骤(quoted from official documentation):
为docker服务创建一个systemd插入目录:
$ sudo mkdir -p /etc/systemd/system/docker.service.d
创建一个名为/etc/systemd/system/docker.service.d/http-proxy.conf的文件,其中添加了HTTP_PROXY
环境变量:
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/"
清除更改
$ sudo systemctl daemon-reload
重新启动docker
$ sudo systemctl restart docker
在这一点上,我相信您将能够下载python:2.7-slim
图片。
另一方面,如果您希望在容器内自动设置与代理相关的环境变量,则应遵循this指南。请注意,这等同于我对您的第一个问题的评论。因此,如果不存在初始图像(FROM
语句),则在Dockerfile中设置代理环境将对您没有帮助。
最后,您可以预先配置容器以在运行时设置代理环境。但是在Dockerfile中,当您指示Docker守护程序构建映像时,守护程序应该知道您的代理设置,以便在FROM
语句中下载映像(如果不存在)。
希望有帮助!