Answers:
您可以使用它而无需执行任何特殊操作。如果您有一个本地图像blah
,可以这样做FROM blah
。如果您FROM blah
在Dockerfile中进行操作,但是没有名为的本地映像blah
,则 Docker将尝试从注册表中提取它。
换句话说,如果Dockerfile这样做了FROM ubuntu
,但是您有一个ubuntu
与官方映像不同的本地映像,则您的映像将覆盖它。
docker image list
。
已验证:它在Docker 1.7.0中运行良好。
顺便说一句,--pull=true
在运行docker build
命令时不要指定:
如果要使用本地图像作为基本图像,请不带选项
--pull=true
,--pull=true
将始终尝试拉取该图像的较新版本。
-
字符(my-image
例如),那么您的泊坞窗将不会在本地解析此映像,我不知道为什么,无论如何要修复它,根本不使用-
字符,而是在
Docker version 17.06.2-ce, build cec0b72
,但是请确保如果您标记了图像,则将该标记作为图像规范的一部分包含在内(FROM localimage:tag)。
您可以在图像中包含-字符。假设您有一个名为centos-base-image且标签为7.3.1611的本地映像(而非本地注册表)。
docker version
Client:
Version: 1.12.6
API version: 1.24
Package version: docker-common-1.12.6-16.el7.centos.x86_64
Go version: go1.7.4
Server:
Version: 1.12.6
API version: 1.24
Package version: docker-common-1.12.6-16.el7.centos.x86_64
Go version: go1.7.4
docker images
REPOSITORY TAG
centos-base-image 7.3.1611
Docker文件
FROM centos-base-image:7.3.1611
RUN yum -y install epel-release libaio bc flex
结果
Sending build context to Docker daemon 315.9 MB
Step 1 : FROM centos-base-image:7.3.1611
---> c4d84e86782e
Step 2 : RUN yum -y install epel-release libaio bc flex
---> Running in 36d8abd0dad9
...
在上面的示例中,FROM
您正在获取本地映像,您可以提供其他说明,从您的自定义注册表中获取映像(例如FROM localhost:5000/my-image:with.tag
)。请参阅https://docs.docker.com/engine/reference/commandline/pull/#pull-from-a-different-registry和https://docs.docker.com/registry/#tldr
最后,如果在提供名称时无法解析图像,请尝试在创建图像时将标签添加到图像
这个GitHub线程描述了一个类似的问题,即没有按名称查找本地图像。
通过省略特定标签,码头工人将查找标记为“最新”的图像,因此可以使用:latest标签创建图像,或更改您的FROM