Skip to main content

Docker Image Downloader.

Project description

dockloader

由于 Docker Hub 及其镜像仓库在中国大陆地区被限制,您已无法在中国大陆地区通过 docker pull 来拉取映像。

虚拟化和容器技术已成为现代软件开发、开源和云计算的基石,我们完全无法想象在没有容器镜像的情况下,应用程序的构建、测试、发布和运行会如何进行。

对于普通个人用户,无论自己构建映像亦或是搭建 Harbor 都会是一项耗时、耗力的投入与维护,也不是每个人都能轻松翻墙来拉取映像。

dockloader 项目的初衷是寻找一种无需任何部署即可简单替代 docker pull 从 docker.io 拉取映像的方案。它使用 GitHub Actions 来从 Docker Hub 拉取映像并上传到 GitHub Packages 之上,这样就可以通过 ghcr.io 来拉取映像。

这项工作并不复杂,当 workflows 被创建之后,仅需要提交一个 PR 即可触发,然后等待 actions 执行完毕即可通过 docker pull ghcr.io/podboy/<image>[:tag] 拉取对应的映像。

同时,基于 Python(>=3.10) 开发的 dockloader 命令行工具为迁移映像提供支撑。

拉取映像

请首先在 Packages 查找您需要的映像是否已经存在!

如果没有您需要的仓库或者特定版本,则可以提交变更请求以更新映像。

贡献指南

由于 Docker Hub 的映像数量极其庞大,欢迎任何人贡献 PR 以帮助其他人获取到更多、更新、更好的映像。

提交 PR 之前,请先了解配置文件格式并仔细阅读此贡献指南!

tag 格式

映像的 tag 的格式如下:

[registry_host[:port]/][namespace/]repository[:<tag>|@sha256:<digest>]

Docker Hubregistry为固定的docker.ionamespaceusername(官方映像为library)。

config 文件

配置文件的总入口为 docker.io 文件,每个 username 均需要在 cfgs 文件夹中新增一个同名的文件夹,并且在 docker.io 中增加一行 import <username> 以导入文件夹中的所有配置文件。

每个 repository 均需要新增一个同名的配置文件,并放置在对应的 username 文件夹(官方映像为 library 文件夹)下。

配置文件的格式为:

  • 所有 "#" 之后的内容为注释内容
  • 每行一个映像,并且将所有关联的 tag 合并在一起(示例:mysql:8.0.0,8.0,8,latest
  • 请按从上至下由新到旧的顺序,并且 latest 在第一行

dockloader 命令行工具

如果你对 dockloader 命令行工具感兴趣,请向 dockloader branch 提交 PR

非常感谢您对本项目的支持和贡献!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dockloader-0.1a13.tar.gz (10.4 kB view hashes)

Uploaded Source

Built Distribution

dockloader-0.1a13-py2.py3-none-any.whl (10.0 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page