取而代之的是从本地docker映像中提取
我有一个Dockerfile内容的应用程序,看起来像
Dockerfile
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"]
我不想从亚马逊拉的形象,而是我想从已经存在的本地图像“拉”,拉第一个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使用的图像,它将使用该图像,但是如果主机没有它,它会去泊坞窗集线器或任何你已经在你的configurationregistry
所以我将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
,我想知道如何告诉Docker使用本地图像,而不是试图从亚马逊的url拉。 有任何想法吗?
首先从本地Docker引擎中的远程存储库中提取图像:
docker pull SOME_NUMBERS.dkr.ecr.us-east-1.amazonaws.com/app_name:SOME_HEX_VALUE
现在,给图像一个新的本地标签:
docker tag SOME_NUMBERS.dkr.ecr.us-east-1.amazonaws.com/app_name:SOME_HEX_VALUE my-image-name
现在您可以简单地引用my-image-name
,如下所示:
FROM my-image-name
你应该:
FROM IMAGE_ID
或者,这已经很好了:
FROM SOME_NUMBERS.dkr.ecr.us-east-1.amazonaws.com/app_name:SOME_HEX_VALUE
其中SOME_HEX_VALUE
是标记版本( docker images
的第二列)。 请注意,如果图像出现在您的计算机上,泊坞窗将不会再尝试拉它。