Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何管理不同环境(开发、测试和产品)的Docker映像和存储库?_Docker_Dockerfile_Docker Image_Docker Repository - Fatal编程技术网

如何管理不同环境(开发、测试和产品)的Docker映像和存储库?

如何管理不同环境(开发、测试和产品)的Docker映像和存储库?,docker,dockerfile,docker-image,docker-repository,Docker,Dockerfile,Docker Image,Docker Repository,我想为不同的环境(开发、测试和产品)创建Docker映像。我确实创建了三个不同的DockerFile 我发现以下两个选项可以在单个存储库或多个存储库中管理不同版本的图像 Option 1: Build images with different tags and push it to the single docker repository? Option 2: Create separate docker repository for each environment and push co

我想为不同的环境(开发、测试和产品)创建Docker映像。我确实创建了三个不同的DockerFile

我发现以下两个选项可以在单个存储库或多个存储库中管理不同版本的图像

Option 1: Build images with different tags and push it to the single docker repository?

Option 2: Create separate docker repository for each environment and push corresponding images?

我想知道什么是首选选项或任何其他想法?

通常情况下,最好有一个单独的生产注册表和一个单独的开发/测试注册表

这样做的原因是,开发人员可以推送到dev/testregistry,而QA团队可以从那里提取非生产映像,以进行持续的开发和测试


这也有助于保持生产注册表的安全,并且在开发人员将其推送到共享注册表时防止由于名称冲突而导致的不必要的覆盖。

您说的“单独注册表”是指单独的docker存储库?啊,我想我误解了(?)docker注册表用于存储图像的问题,这是您一直在寻找的还是您从代码管理的角度提出的问题?如果您是从存储prod和dev的docker映像的角度提出问题,那么我的答案是肯定的,我相信docker registry和repository是相同的概念。否。我不是在问代码管理的观点。我混淆了docker注册表和存储库。我相信docker注册中心就像DockerHub、AWS ECR等。。其中as存储库包含附加了不同标签的docker图像。两者都是相同的东西。如果您转到
Dockerhub
并查找
mysql
图像,它将包含所有标记的图像:通常我看到的建议是在所有环境中运行相同的图像。否则,你要测试一个映像,然后构建完全不同的东西,并将一个未经测试的映像推向生产,这并不是一个真正的最佳实践。我也有同样的想法。但是,当我在不同的环境中看到不同的用例时,我会马上回答这个问题。例如,我想在开发和生产中使用不同的卷类型,这使得dev环境是可变的,prod是不可变的。