我的应用程序的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在其上使用的映像,它将使用该映像,但如果主机没有它,它将转到docker hub或您在配置中为注册表设置的任何内容< / p>
所以我将Dockerfile内容更改为:
FROM IMAGE_ID:SOME_HEX_VALUE
其中IMAGE_ID
是我在docker images
时所需的存储库的图片ID,但后来我Service 'app' failed to build: repository SOMESHORT_HEX not found: does not exist or no pull access
,我想知道如何判断Docker使用本地图像而不是试图从亚马逊网址中提取。有什么想法吗?
答案 0 :(得分:4)
首先从本地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
答案 1 :(得分:0)
你应该:
homestead up --provision
或者,这已经可以了:
FROM IMAGE_ID
FROM SOME_NUMBERS.dkr.ecr.us-east-1.amazonaws.com/app_name:SOME_HEX_VALUE
是标记版本(SOME_HEX_VALUE
中的第二列)。 请注意,如果您的计算机中存在图像,则docker不会再尝试将其拉出来。