我正在做一个dockerfile。 我刚刚意识到我一直在使用FROM索引图像。

所以我想知道:

我如何使用我的一个本地(自定义)图像作为我的基础(FROM)图像而不推到索引?


当前回答

对于使用M1芯片的用户,当本地镜像与目标Dockerfile的平台不同时,就会出现问题。在我的情况下,我已经建立了M1支持的基本映像,然后尝试使用命令FROM在映像,这是与平台linux/amd64构建

其他回答

你不用做任何特别的事情就可以使用它。如果你有一个名为blah的本地映像,你可以使用FROM blah。如果你在Dockerfile中使用了FROM blah,但是没有名为blah的本地映像,那么Docker将尝试从注册表中提取它。

换句话说,如果Dockerfile FROM ubuntu,但是你有一个不同于官方的本地映像,你的映像将覆盖它。

对于使用M1芯片的用户,当本地镜像与目标Dockerfile的平台不同时,就会出现问题。在我的情况下,我已经建立了M1支持的基本映像,然后尝试使用命令FROM在映像,这是与平台linux/amd64构建

已验证:在Docker 1.7.0中运行良好。

在运行docker build命令时,不要指定——pull=true

在dockerfile中使用From引用本地构建的映像:

如果要使用本地映像作为基映像,则不需要传入 选项——拉= true ——pull=true总是尝试拉一个更新的 映像的版本。

我们/etc/docker/daemon.Json有一行声明

"disable-legacy-registry" : true,

有了这条线,当地的登记处拒绝访问。 除去了它,它开始工作了。

我必须禁用带有M1的mac上的BUILDKIT才能使用本地映像。 可以通过将DOCKER_BUILDKIT环境变量设置为0来实现这一点。

DOCKER_BUILDKIT=0 docker build -t YOUR_TAG——pull=false。