CI 工作流将构建的镜像推到镜像仓库。dockerhub 它是一个常用的镜像存储仓库。一个施工步骤可以推送图像,而其他分布式步骤可以拉。挑战是,大多数注册中心需要身份验证才能推送和拉。
ttl.sh 免费使用,无需注册登录,短暂开源 Docker 镜像仓库
https://ttl.sh/ > https://github.com/replicatedhq/ttl.sh
如何使用
下面通过将 busybox 重新打 tag 后 push 做示例:
# docker pull busybox # docker tag busybox ttl.sh/busybox # docker push ttl.sh/busybox # docker pull ttl.sh/busybox 镜像有时间限制,默认 1 小时,最长 24 小时(有效时间标签:5m, :1600s, :4h, :1d)
上面示例推送的镜像没有时间后缀,默认保存 1 小时。
以下是生成 uuid 并增加 5 保留时间分钟:
# IMAGE_NAME=$(uuidgen) # docker tag busybox ttl.sh/${IMAGE_NAME}:5m # docker push ttl.sh/${IMAGE_NAME}:5m The push refers to repository [ttl.sh/ede2d864-ff1c-48d0-b0c3-2fd902833432] 拉镜像的速度取决于 Cloudflare。
CloudFlare 的 是一家为各种产品提供内容交付网络的美国公司 (CDN) 和 DNS 优化网站和应用程序的性能、可交付性和在线安全性。
总结
这将更好地利用开发环境,不推荐生产,因为由于匿名,你发送的镜子很可能被其他人篡改,如果直接运行,会有很大的安全风险!
所以在 push 通过镜像uuidgen命令生成将是随机的 UUID 将其添加到镜像名称中,以降低碰撞概率和可发现性。
值得一提的是,在国内网络环境下,速度不能保证。