通过Docker Hub和GitHub来拉取国外镜像

半兽人 发表于: 2019-07-26   最后更新时间: 2021-03-02 11:11:35  
{{totalSubscript}} 订阅, 5,610 游览

问题

我们在拉取国外镜像,例如在搭建 Kubernetes 的时候需要使用到来自于 Google:gcr.io/google_containers/kube-apiserver-amd64这样的镜像,但是国内环境被墙连不上,所以使用 docker pull 的时候又经常提示我们拉取超时。

用别的镜像库

google外的docker 开源网站

曲线救国

但是,有些镜像以上2个镜像库都没有,这时,我们还可以通过 github + docker hub的方式来拉取到 google 的镜像。

就是这样的

你 ----->  Docker Hub -----> Google镜像

Docker hub提供了直连GitHub的方式来构建一个 Repository,而 GitHub 又可以轻松拉取到 google 上面的资源,因此他们俩的组合就可以在 Docker Hub 上构建一个自己的 Repository 来拉取想要的镜像了。

第一步:GitHub,准备dockerfile

首先,你得有一个 GitHub 的账号,然后在你需要在 GitHub 里面创建一个 Repository:点击下面左侧导航栏的 New 按钮

screenshot

接下来你可以通过上传或者创建的方式来添加一个名为 Dockerfile 的文件并且填入镜像的来源,点击提交:

screenshot

screenshot

至于如何填写Dockerfile中的内容,你可以直接在 GitHub 中查找你所需要的镜像资源,然后选择中间靠下面的 Dockerfile,最后选择右边一个你觉得 OK 的点击进去就可以看到 Dockerfile 的内容了,将里面的内容复制过来:

至此 GitHub 上的操作就结束了。

第二步:Docker Hub

同样的,你需要有一个 Docker Hub 的账号,登录进去。

接着,同样也是创建一个 Repository:

screenshot

接下来关键的步骤来了:首先你需要填入你的 Repository 的基本信息,然后选择连接到 GitHub 上(图中的状态是已经连接好了的,第一次连接的时候需要填入 GitHub 的账号和密码来进行授权,操作很简单)

screenshot

当连接到 GitHub 上之后,选择对应 GitHub 上面的 Repository 和填写分支信息以及 Docker 镜像的Tag信息,最后点击 Create & Build 即可等待 Docker 自动完成镜像的构建了。

screenshot

Docker Hub 会提示 Repository 创建成功:

screenshot

接着可以在跳转到的页面中点击 Builds 来查看构建进度:

screenshot

当然你也可以点击上图中的 Configure Automated Builds 来创建自动构建功能,即当 GitHub 上的 Dockerfile 变化时,镜像自动的被构建:

screenshot
也可以指定dockerfile的位置
screenshot

静静等待几分钟你就可以看到你的镜像构建成功了:

screenshot

更新于 2021-03-02

查看docker更多相关的文章或提一个关于docker的问题,也可以与我们一起分享文章