从本地泊坞窗图像中取出

时间:2017-05-24 19:27:27

标签: image docker docker-compose

我的应用程序的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在其上使用的映像,它将使用该映像,但如果主机没有它,它将转到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使用本地图像而不是试图从亚马逊网址中提取。有什么想法吗?

2 个答案:

答案 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不会再尝试将其拉出来。