乘风破浪,遇见最美Windows 11之现代Windows开发运维 - Docker容器化镜像使用规范总结
背景
在通过Docker使用和打包容器化镜像的时候,很容易因为一些不规范的操作引发不必要的麻烦,下面总结一些规范项供参考。
总结
建议 | 描述 |
---|---|
镜像构建 | 除系统镜像外所有的Docker镜像都建议采用Dockerfile方式进行构建。 |
镜像一经创建不能修改 | 避免手工修改运行中的容器并提交镜像,否则无法保障镜像内容的可追溯性。 |
镜像统一由镜像仓库管理 | 所有Docker镜像统一提交到镜像仓库,并对镜像仓库进行授权管理。 |
镜像Tag管理,不允许使用Latest作为默认Tag | 所有Docker镜像必须利用Tag进行版本管理;引用Docker镜像时必须指明Version Tag;不允许利用缺省Latest Tag作为默认Tag。 |
Docker镜像应该自包含 | Docker镜像应该是自包含的,应该包括应用所需的基础镜像、应用依赖和标准配置模板。 |
禁止依赖不明来源的基础镜像 | DockerHub的官方镜像和Docker Store的认证镜像经过代码扫描,可以信任;DockerHub的三方镜像或其他不明来源的镜像可能存在安全风险,使用需谨慎。 |
不允许镜像内保存源代码 | 建议通过多阶段构建在Dockerfile中将应用的编译和最终交付镜像构建分离,这样也会减少镜像体积;对于直接使用源代码的应用程序,比如Ruby、PHP等,可考虑使用混淆等技术。 |
不允许在镜像内保存安全凭证、密钥 | 建议使用环境变量或者配置文件的方式,或通过K8S Secret传递敏感信息。 |
镜像中是否过多的使用依赖 | 基础镜像中只包含必要的软件包,一方面减少基础镜像大小,一方面降低安全风险;如果从外部下载软件包到容器,建议通过MD5/SHA256签名来验证防止内容被篡改。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2020-08-17 关于标记语言转换工具PanDoc在Windows10安装和使用