我有码头文件,用来制作图像。
FROM public.ecr.aws/lambda/python:3.9
RUN export LANG=en_US.UTF-8
RUN export PYTHONUNBUFFERED=1
docker build -f dockers/mydocker -t python .
那么我想用这个图像来制作图像。
有列出的图像名为basic docker images
然后在另一个Dockerfile里。
FROM python
ADD ./Pipfile* ./
RUN pipenv install --ignore-pipfile
当我试图构建这个dockerfile时
就这样来了
FROM docker.io/library/python
这是否意味着我可以使用本地图像来构建下一个图像?
为此,我需要建立当地的存储库??
或者其他的方法??
发布于 2022-01-24 12:15:22
这可能很好,但您应该小心地选择与标准Docker集线器图像名称不冲突的名称。
Docker图像名具有表单registry.example.com/path/name
。如果没有显式指定注册表,它总是默认为docker.io
(不能更改),如果也不指定路径,则默认为docker.io/library/name
。这在所有上下文中都是正确的-- docker build -t
选项、docker run
映像名、Dockerfile FROM
行以及图像名称出现的任何其他地方。
这意味着,当您运行docker build -t python
时,您将创建一个与Docker Hub python
image同名的本地映像。docker build
诊断正在向您显示展开的名称。实际上,它应该基于您的本地映像;Docker不会联系远程注册表,除非该图像在本地丢失,或者您明确地告诉它。
我建议在这里选择一些明确的名字。您不需要一个码头集线器帐户,但尽量避免与标准图像冲突的赤裸裸的名称。
# this will work even if you don't "own" this Docker Hub name
docker build -f Dockerfile.base -t whitebear/python .
FROM whitebear/python
...
(自RUN export
doesn't do anything以来,您可能很难看到基本映像的效果;将基本映像中的这些行改为ENV
。)
https://stackoverflow.com/questions/70830539
复制相似问题