而是从本地docker镜像中拉取

Emm*_*uel 2 image docker docker-compose

我有一个带有Dockerfile内容的应用,看起来像

Docker文件

FROM SOME_NUMBERS.dkr.ecr.us-east-1.amazonaws.com/app_name:SOME_HEX_VALUE

COPY docker/app/bin/startup.sh /usr/bin/

CMD ["/usr/bin/startup.sh"]
Run Code Online (Sandbox Code Playgroud)

我不想再从亚马逊中提取图像,而是想从docker-compose up --build运行第一个命令后已经存在的本地图像中“提取” 。

当我这样做docker images,我得到

SOME_NUMBERS.dkr.ecr.us-east-1.amazonaws.com/app_name SOME_HEX_VALUE SOMESHORT_HEX 2 days ago 1.54 GB这意味着图像已经是本地的。我明白了

如果主机上有您想要docker-compose使用的映像,它将使用该映像,但是如果主机上没有该映像,它将进入docker hub或您在配置中为注册表设置的任何内容

所以我将Dockerfile的内容更改为:

FROM IMAGE_ID:SOME_HEX_VALUE这里IMAGE_ID是仓库的图片ID我想,当我做docker images,但后来我得到Service 'app' failed to build: repository SOMESHORT_HEX not found: does not exist or no pull access我想知道如何告诉泊坞窗使用的,而不是试图从亚马逊网址拉局部图像。有任何想法吗?

lar*_*sks 5

首先从本地Docker引擎中的远程存储库中提取图像:

docker pull SOME_NUMBERS.dkr.ecr.us-east-1.amazonaws.com/app_name:SOME_HEX_VALUE
Run Code Online (Sandbox Code Playgroud)

现在,给图像一个新的本地标签:

docker tag SOME_NUMBERS.dkr.ecr.us-east-1.amazonaws.com/app_name:SOME_HEX_VALUE my-image-name
Run Code Online (Sandbox Code Playgroud)

现在,您可以简单地引用my-image-name,如:

FROM my-image-name
Run Code Online (Sandbox Code Playgroud)