总结

昨天想要部署一个时间管理工具,结果证明,是在浪费时间。但过程中还是学到一些东西。

  • docker 公共镜像库的 pull 地址为 docker.io,默认可以省略,跟镜像 tag 省略默认为 :latest一样
  • 除了公共镜像库,目前 GitHub Container Registry(GHCR),即 ghcr.io 是当前比较大的镜像库,属于 GitHub 官方的容器库。
  • docker 公共镜像库因为网络原因容易拉取不到镜像(VPN可以解决),而 ghcr.io 匿名访问不稳定,需要先登录(下面有步骤说明)
  • ghcr.io 无法像公共镜像库一样,支持直接搜索,而是需要先找到项目,在项目说明或者切换到仓库右侧 Packages 页面查看是否支持容器化
  • chatgpt 比 deepseek 好用一些,但依然存在明显的能力边界。比如 ActivityWatch/activitywatch github 项目目前只支持本地化运行,类似的数据同步/上传功能需要额外配置(不想成为公司、管理人员监控员工的工具),官方没有提供 docker 部署支持。但 chatgpt 依然跟 deepseek 一样,将 ActivityWatch/activitywatch 列为可以 docker 部署的时间管理工具。
  • 阿里云容器镜像服务(ACR)属于属于私有化的镜像服务,也需要登录,需要自己上传相关的容器镜像。作为中转站,主要解决一些服务器无法拉取的镜像问题。

本地如何登录 ghcr.io

第一步:创建 Personal Access Token

进入:

推荐:

Fine-grained personal access tokens

或者经典 token 也行。

第二步:授权权限

实际没有找到读、写权限,直接跳过点击创建即可。

至少给:

read:packages

如果还要 push:

write:packages

第三步:docker login

执行:

docker login ghcr.io

然后输入:

Username

你的 GitHub 用户名:

your_github_name

Password

不是 GitHub 密码。

而是:

Personal Access Token

成功后效果

Docker 会保存到:

~/.docker/config.json

类似:

{
  "auths": {
    "ghcr.io": {
      "auth": "xxxxx"
    }
  }
}
文章目录