为什么有人只在源代码管理中共享自己的dockerfile并让docker映像使用者直接使用@RequestWrapper(className = "org.game.webservice.jaxws.HeroChampion", localName = "saveHeroChampion", targetNamespace = "http://webservice.game.org")
@ResponseWrapper(className = "org.iom.uktb.webservice.jaxws.SaveHeroChampionResponse", localName = "saveHeroChampionResponse", targetNamespace = "http://webservice.gameorg/")
public void saveSputumSmearTest(String heroIDPk, String skill1){
sputumSmearTestManager = (SputumSmearTestManager) BeanRetriever.getBean("sputumSmearTestManager");
HeroChampion heroChampion = new HeroChampion ();
HeroChampionBean heroChampionBean = new HeroChampionBean ();
heroChampionBean.setHeroIDPk(heroIDPk);
heroChampionBean.setSkill1(skill1);
try{
BeanUtils.copyProperties(sputumSmearTest, sputumSmearTestBean);
sputumSmearTestManager.saveSputumSmearTest(sputumSmearTest, true);
}catch(Exception e){
e.printStackTrace();
}
}
从dockerfile构建,他们为什么会使用私有docker登录?
对我而言,未经培训的私人Docker注册表似乎与源代码管理具有相同的目的,除了它增加了复杂性,因为它已经与您所在的代码分支分离了,所以您(或您的CI / CD服务器更多)点)必须重建要拉出的标签。
答案 0 :(得分:1)
当您在真实计算机上进行部署时(例如,您有一项工作在10台计算机上进行部署),通常您并不想一次又一次地重建映像。
相反,您可以一次构建映像,将其存储在某个位置(???),然后部署在测试环境中,运行一些测试,确保其确实具有良好的映像(启动,测试通过等),然后部署在生产环境中。
因此,此“某处”意味着您应该具有一些注册表,并且如果您不想使用Docker中心-您可以使用私有Docker注册表。
从安全性角度讲这都是很有意义的(如果不需要,请不要在云上发布) 和性能(在专用网络中的服务器之间移动图像的速度更快)。
如果您正在运行kubernetes,还可以将其配置为从docker注册表中提取映像,并根据kubernetes部署文件中指定的这些映像运行pod。
如果您在AWS上运行,则可以使用docker Registry运行Fargate或ECS之类的服务。他们将负责跨机器扩展(非常类似于k8s),但是他们仍然需要从某个地方获取图像,嗯,这是一个私有注册表(在这种情况下,称为ECS-Elasctic Container Registry)。 >
底线,在很多(简单)情况下,您都可以不用它,但是在其他情况下,它非常方便