华为云 SWR 容器镜像服务实战:镜像构建、漏洞扫描与跨区域自动同步

举报
yd_253000176 发表于 2026/11/11 09:19:15 2026/11/11
【摘要】 从镜像构建与推送、漏洞扫描流程卡点、跨区域自动同步到老化策略,梳理华为云 SWR 容器镜像服务的落地实践与常见问题。

一、业务背景

团队把容器镜像散落在各个构建机上,用 docker save/load 传递,环境一多就找不到哪个镜像是哪个 commit 构建的;扫描也没人做,漏洞报告全靠人工比对。SWR 是华为云的容器镜像服务,提供镜像托管、漏洞扫描、跨区域同步和镜像老化策略,正好把这几件事收敛到一个地方。

二、准备组织与登录

在 SWR 控制台创建组织(命名空间)后,命令行先登录:docker login -u AK -p 登录密钥 swr.cn-north-4.myhuaweicloud.com。注意这里的密码是「我的凭证」里生成的长期有效登录密钥,不是账号登录密码,很多人第一次都会卡在这里。密钥建议放进 CI 的变量里,不要写进脚本。

三、构建并推送镜像

在 Dockerfile 同目录执行 docker build -t swr.cn-north-4.myhuaweicloud.com/myorg/order-api:1.2.0 . 然后 docker push 同名标签。多区域部署时同一镜像要打不同区域的域名前缀,用 docker tag 复制一份再推。构建机上不要保留悬空镜像,推送完接 docker image prune -f。

四、漏洞扫描与流程卡点

镜像推上去后在 SWR 控制台可以对指定版本触发扫描,扫描结果分致命、严重、高危、中危、低危几档,并给出软件包版本和修复建议。真正的价值是把扫描接进流程:在流水线里调用镜像扫描接口,返回的严重级别超过阈值就让流水线失败,避免带着高危漏洞的镜像被部署。基础镜像换成更小的 alpine 或 distroless,通常能一次消掉几十条告警。

五、跨区域自动同步

SWR 支持配置同步规则:源区域选组织与镜像过滤,目标区域选另一个区域。配置后新推送的镜像会自动复制过去,异地集群拉取走就近区域,节省跨区流量。同步是异步的,首次同步老镜像需要点手动同步,并注意同名同标签不会覆盖,所以要靠 tag 规范(如日期加 commit 号)来保证唯一。

六、镜像老化与存储成本

镜像只增不减很快撑爆配额。老化策略按保留最近 N 个标签、保留最近 N 天组合配置,规则只对匹配的过滤条件生效,建议先只对一个测试组织开启观察两周,确认没有删掉正在使用的版本再推广。

七、踩坑与建议

第一,登录密钥过期或权限不足会导致 push 报 unauthorized,检查 IAM 是否授予 SWR 管理员或对应组织的读写权限。第二,镜像拉取密钥需要在 CCE 里配置为 imagePullSecrets,否则节点拉取 401。第三,构建产物用 digest 固定比 tag 更可靠。第四,把扫描结果和同步状态推送到群里,比事后查报表有效得多。

整体下来,SWR 把镜像的存、扫、同步三件事标准化了,团队从散落的镜像文件变成有流程可查的流水线,日常维护成本明显下降。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。