Docker将容器推送到私有registry

我有一个应用程序使用几个docker集装箱:

  1. NGINX容器
  2. NodeJS启动应用程序容器
  3. Rediscaching容器

由于我为上述两个容器使用现有的图像,我也有两个caching容器:

  1. 高山
  2. Redis的

我正在尝试将我的容器(1,2和3)推送到AWS Elastic Container Registry(ECR)。 我已经能够做到这一点,但已经注意到我的caching容器(4&5)也得到了推动。

我使用docker-compose构build容器,然后像这样标记:

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

在用docker login进入ECR后,我使用这个命令:

docker push <repository URL>:latest

然后,Docker将所有5个容器推入registry中。 我怎么只推送我关心的容器,而不是caching的容器呢?

提前致谢 :-)

我怎么只推送我关心的容器,而不是caching的容器呢?

你没有。

Docker镜像(不是容器 ;一个容器就是你启动镜像的时候得到的)是从图层中构build的。 例如,您的nginx图像由alpine图像中的所有图层组成,随后是由Dockerfile创build的任何图层。

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

所以,如果你在alpine的图像上build立一个图像,并把它推到私人存储库, alpine图像也会被推到那里。