Docker将容器推送到私有registry
我有一个应用程序使用几个docker集装箱:
- NGINX容器
- NodeJS启动应用程序容器
- Rediscaching容器
由于我为上述两个容器使用现有的图像,我也有两个caching容器:
- 高山
- 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
图像也会被推到那里。