代码之家  ›  专栏  ›  技术社区  ›  thanasissdr

由于代理设置[重复],无法下载Dockerfile中声明的基本映像

  •  -1
  • thanasissdr  · 技术社区  · 7 年前

    这可能是一个简单的问题,但无论如何。

    我创建了一个 Dockerfile ,其中第一行是: FROM python:2.7-slim . 这个图像不在我的本地系统中,所以它会从repo下载,对吗?

    但是,我的代理设置不允许我下载图像。所以,我的问题是,我是否有机会声明代理设置以下载基础映像?

    主机运行Ubuntu 16.04。

    1 回复  |  直到 7 年前
        1
  •  0
  •   leopal Guilherme Oliveira    7 年前

    我不知道你到底在问什么。因此,我将尝试提供一些关于 docker 和代理设置。

    正如您正确提到的:

    我创建了一个Dockerfile,其中第一行是: FROM python:2.7-slim . 此图像不在我的本地系统中,因此它将从repo下载。

    事实上,当主机中没有图像时,将从正式docker repo(或私人,如果您设置了任何)下载图像。

    如果使用代理,则应提供docker守护程序代理设置。要实现这一点,请执行以下步骤( quoted from official documentation ):

    1. 为docker服务创建systemd drop-in目录:

      $ sudo mkdir -p /etc/systemd/system/docker.service.d

    2. 创建一个名为/etc/systemd/system/docker的文件。服务d/http代理。添加 HTTP_PROXY 环境变量:

      [Service] Environment="HTTP_PROXY=http://proxy.example.com:80/"

    3. 刷新更改

      $ sudo systemctl daemon-reload

    4. 重新启动docker

      $ sudo systemctl restart docker

    在这一点上,我相信您将能够下载 python:2.7-slim 形象


    另一方面,如果希望在容器中自动设置与代理相关的环境变量,则应遵循 this 指导请注意,这相当于我在您最初的问题中的评论。因此,如果初始图像( FROM 语句)不存在。

    总之,您可以预先配置容器,以便在运行时设置代理环境。但是在Dockerfile中,当您指示docker守护程序构建映像时,守护程序应该知道您的代理设置,以便在中下载映像 发件人 声明(如果不存在)。

    希望有帮助!