Docker将容器推送到私有注册表

时间:2016-03-30 11:49:00

标签: amazon-web-services docker docker-compose

我有一个使用多个泊坞容器的应用程序:

  1. NGINX容器
  2. NodeJS航行应用容器
  3. Redis缓存容器
  4. 由于我使用上述两个容器的现有图像,我还有两个缓存容器:

    1. 高山
    2. redis的
    3. 我试图将我的容器(1,2和3)推送到AWS Elastic Container Registry(ECR)。我已经能够做到这一点,但是我注意到我的缓存容器(4和5)也被推了。

      我使用docker-compose构建容器,然后进行标记:

      docker tag -f nodejs_app:latest <repository URL>:latest

      使用docker login登录ECR后,我推送使用此命令:

      docker push <repository URL>:latest

      Docker然后将所有5个容器推送到注册表中。 我如何只推送我关心的容器而不是缓存容器?

      提前致谢: - )

1 个答案:

答案 0 :(得分:1)

  

我如何只推送我关心的容器而不是缓存容器?

你没有。

Docker镜像(不是容器;一个容器就是你在引导图像时得到的)是从图层构建的。例如,您的nginx图片包含alpine图片中的所有图层,后跟由Dockerfile创建的所有图层。

为了将新图像存储在私有存储库中,所有底层图层都需要。这意味着除了您通过Dockerfile创建的图层外,还需要将alpine图像中的所有图层也推送到存储库。

因此,如果您在alpine图像上构建图像并将其推送到私有存储库,那么alpine图像也会被推送到那里。