惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
MyScale Blog
MyScale Blog
U
Unit 42
M
MIT News - Artificial intelligence
小众软件
小众软件
P
Proofpoint News Feed
雷峰网
雷峰网
L
LangChain Blog
S
SegmentFault 最新的问题
腾讯CDC
F
Fortinet All Blogs
A
About on SuperTechFans
WordPress大学
WordPress大学
Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
Docker
N
Netflix TechBlog - Medium
Apple Machine Learning Research
Apple Machine Learning Research
Recent Announcements
Recent Announcements
D
DataBreaches.Net
Stack Overflow Blog
Stack Overflow Blog

陈少文的网站

巨变与机遇的未来十年 Kubernetes 平台管理软件压力测试方案 使用镜像部署 Hexo 静态页面 一起来学 Go --(6)Interface 一起来学 Go --(5)Goroutine 和 Channel 什么是函数式编程 如何在 Kubernetes 集群集成 Kata 柯里化与偏函数 使用 PyGithub 自动创建 Label 软件产品是团队能力的输出 Helm 2 、Helm 3 比较 IoT 变现 Kubernetes 中的 DNS 服务 国内的 Helm 镜像源 Harbor 使用自签证书支持 Https 访问 DevOps 工具链之 Prow 如何使用 kfctl 安装 Kubeflow VS Code 无法下载 Go 插件的工具包 工程师更应具有服务精神 你不知道的 Docker 使用技巧 使用 Docker 运行 Tensorflow 论中国 什么是左移 如何清空 Git 仓库全部历史记录 一禅小和尚 有风吹过厨房 时间的玫瑰 如何在 CentOS 安装 GPU 驱动 开发 Tips(19) 使用 Velero 备份 Kubernetes 集群
终于等到你 - GitHub 镜像仓库服务(ghcr.io)
微信公众号 · 2020-09-05 · via 陈少文的网站

Please enable Javascript to view the contents

1. Github Container Registry

9 月 1 日,GitHub 宣布 Github Container Registry 开始公测,测试期间提供免费、无限容量的 Docker 镜像仓库服务。

再也不用担心,docker.io 一言不合清理镜像了。真好真香!

GitHub 正在以托管代码仓库为切入点,逐步覆盖整个研发工具链,打造一站式 DevOps 平台。项目管理有 Issues 、Projects,包管理有 Packages,CI 有 Actions,知识管理有 Wiki ,覆盖面越来越广。

接下来应该就是 CD 部分了,提供容器托管服务是个不错的选择。@GitHub

2. 推送第一个镜像

下面我们来试试推送一个镜像。

2.1 创建登陆 Token

直接使用 GitHub 的账户密码推送镜像会提示错误:

1
unauthorized: Your token has not been granted the required scopes to execute this query. The 'id' field requires one of the following scopes: ['read:packages'], but your token has only been granted the: [''] scopes. Please modify your token's scopes at: https://github.com/settings/tokens.

Github Container registry 需要使用 https://github.com/settings/tokens/new 页面创建的 Token 作为密码才可以推送镜像。

打开上面的链接,勾选 write:packagesread:packagesrepo 会自动选中,创建 Token。

下面以 XXX 代指这里的 Token 值。

2.2 镜像推送

  • 登陆
1
2
3
4
5
echo "XXX" | docker login ghcr.io -u shaowenchen --password-stdin

WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
  • 新建 Tag

查看镜像列表

1
2
3
docker images

mysql     8.0.11      5dbe5b6313e1        2 years ago         445MB

新建 Tag

1
docker tag 5dbe5b6313e1 ghcr.io/shaowenchen/mysql
  • 推送
1
2
3
4
5
docker push ghcr.io/shaowenchen/mysql

The push refers to repository [ghcr.io/shaowenchen/mysql]
ae2d2cded00e: ...
latest: digest: sha256:d98a807f255bd60cd7807af6a11f94cd2456a2908a12adb3737088473c1625a2 size: 2828

这样就完成了镜像的推送。但是镜像并不是每个人都可以 pull ,下面接着来看下镜像的可见性管理。

2.3 可见性管理

推送完成镜像之后,在个人的主页 packages 标签页下面,可以看到镜像列表。

默认推送的镜像是 Private ,只有授权的账户才可以 pull 。而 Public 镜像可以匿名 pull ,没有限制。

  • Private

在 Private 镜像的 Packages settings 页面,可以将 Private 镜像改为 Public ,还可以进行授权的管理 Manage Access。

  • Public

需要注意的是在 Public 镜像的 Packages settings 页面,无法修改镜像的可见性,只能删除镜像。

ghcr.iodocker.pkg.github.com 类似,都是提供镜像仓库服务,使用一样的鉴权方式。但是也有些不同:

  • 维度不同

ghcr.io 针对的是账户维度,是以账户为基本对象提供的服务。而 docker.pkg.github.com 针对的是仓库维度,是以仓库为基本对象提供的服务。

  • 管理粒度不同

docker.pkg.github.com 中的镜像不允许直接删除,只能通过删除仓库的方式,关联删除镜像。

而在 ghcr.io 中,可以直接完全管理镜像。

  • 镜像格式不同

对比一下两者的镜像格式:

1
docker.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME
1
ghcr.io/OWNER/IMAGE-NAME

docker.pkg.github.com 镜像格式形如 docker.pkg.github.com/shaowenchen/pipeline-test/mysql ,在名字中会带上仓库名。而 ghcr.io 提供的 ghcr.io/shaowenchen/mysql 与其他镜像仓库的命名规范更加一致。

4. 参考


微信公众号