出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五晚6点10分 与您不见不散
持续集成(CI)与持续交付(CD)这两种方法是现代化软件开发实践的关键特征。Docker EE 则是这种 DevOps 思维模式的催化剂,它可以与您的首选工具和现有实践相结合从而提高创新交付的质量和速度。
在我们最近一期的网络研讨会中,我们展示了开发人员将 GitLab 作为 CI 工具使用的示例。如果您错过了直播,那么您可以观看下面的回顾视频:
class="video_iframe" height="475.5" width="634" frameborder="0" data-src="http://v.qq.com/iframe/player.html?vid=h0566fn4ri9&width=634&height=475.5&auto=0" allowfullscreen="" data-vidtype="2" style="display: none; width: 634px !important; height: 475.5px !important;" data-vh="475.5" data-vw="634" src="http://v.qq.com/iframe/player.html?vid=h0566fn4ri9&width=634&height=475.5&auto=0"/>
以下是网络研讨会的一些重要问题回顾:
问:您能详细说明一下在演示中所展示的将应用程序部署到生产环境中的过程吗?
答:这个示例利用的是一个名为镜像提升的功能,它可以将已验证的镜像自动上传到“prod”镜像仓库。该镜像提升的策略是在“dev”镜像仓库中查找含有特定标签的镜像。如果这个镜像通过镜像扫描检测出的漏洞数量小于预设值,那么它就会自动的迁移到“prod”镜像仓库中,并会附上“latest”标签。随着拥有“latest”标签的镜像更新,服务更新将使用新版本来取代旧的生产环境中的网站容器。
问:在这个演示中,您是否可以在上传到生产环境之前执行最后一步操作或为整个流程添加更多的检查点?
答:是的!这些都非常灵活,您可以在 CI 设置中根据需求进行自定义配置。
问:在演示中,当镜像迁移到生产环境中时,会将“latest”标签添加到该镜像,这是最佳做法吗?不怕被轻易地覆盖吗?
答:该演示展示了一个简单的示例,但组织可以使用 Docker EE 的内置功能来实施不同的策略,从而提供额外的安全检查。例如,管理员可以声明某些镜像仓库是“不可变更的”。这就意味着,一旦将镜像按“latest”标签上传到那个“不可变更的”镜像仓库中,那么该标签就不能被其它镜像覆盖。您还可以利用自动的镜像提升功能将版本号和日期添加到标签。最后,您可以通过利用镜像签名来防止未签名的镜像在环境中运行。
问:要将 GitLab 与 Docker 集成,那么 GitLab Runner 是否需要 Docker Trusted Registry (DTR)帐户?并且用什么来签署镜像?
答:在这个演示中,我们没有为 CI 工具创建账户,而是使用客户端包。代替 docker 登录命令使用用户名和密码来访问镜像仓库,将客户端证书的副本附加到GitLab Runner ,以便向 Docker EE 进行身份验证。这种 TLS 加密的身份验证模式允许 CI 工具访问 DTR 和 UCP 。在 UCP 中,可以很容易的创建和取消客户端包。
问:关于镜像签名功能,不同的团队可以获取秘钥为镜像签名吗?
答:可以!Docker EE 支持 LDAP 和 Active Directory ,作为基于角色的权限访问控制的一部分。作为CI / CD工作流程的一部分,用户、团队和组织都可以为镜像签名。然后,管理员可以对 Docker EE 进行设置,以便只允许运行已签名的镜像。
![](https://i-blog.csdnimg.cn/blog_migrate/37d3721dfa90996719b9a52786a482d1.png)
点击下列标题,阅读更多干货
如果本文对你有帮助,欢迎分享到朋友圈!获取更多Docker实用技巧,扫描下图二维码!