8、DockerHub

DockerHub

DockerHub 类似于 GitHub 提供的代码托管服务,Docker Hub 提供了镜像托管服务,Docker Hub 地址为 https://hub.docker.com/。

在Docker Hub上 可以搜索、创建、分享和管理镜像。Docker Hub 上的镜像分为两大类,一类是官方镜像,例如我们之前用到的 nginx、mysql 等,还有一类是普通的用户镜像,普通用户镜像由用户自己上传。对于国内用户,如果觉得 Docker Hub 访问速度过慢,可以使用国内一些公司提供的镜像,例如网易:

https://c.163yun.com/hub#/m/home/

首先打开 Docker Hub ,注册一个账号。
账号注册成功之后,在客户端命令行可以登录我们刚刚注册的账号:
在这里插入图片描述登录成功之后,接下来就可以使用 push 命令上传我们自制的镜像了。注意,自制的镜像要能够上传,命名必须满足规范,即 namespace/name 格式,其中 namespace 必须是dockerhub的用户名,以上篇创建的 Dockerfile 为例:
在这里插入图片描述上传成功后就可以在docker hub 上面看到了:
在这里插入图片描述看到这个表示镜像已经上传成功了,接下来,别人就可以通过如下命令下载我刚刚上传的镜像:

docker pull shuping1996/nginx

pull下来之后,就可以直接根据该镜像创建容器了。

但是这种方式并不是一个最佳的方案,在本地构建好之后,如果要修改这个镜像,那只能在本地修改然后再push上传,上传一个镜像比较大的话就不划算。为了解决这个问题,我们可以结合GitHub使用

自动化构建
自动化构建,就是使用 Docker Hub 连接一个包含 Dockerfile 文件的 GitHub 仓库或者 BitBucket 仓库, 因为刚刚的镜像是用Dockerfile构建的,只要有Dockerfile这个文件,在此基础上去构建镜像,命令是固定的,所以我们可以把Dockerfile提交到GitHub上面去,然后再把Docker Hub和GitHub绑定在一起,做一个账号的授权,让Docker Hub可以访问GitHub里面的仓库。Docker Hub可以访问GitHub之后,它就可以读取GitHub上面的Dockerfile,然后利用这个Dockerfile去构建一个镜像出来。如果想要修改这个镜像,很简答,那就修改Dockerfile,修改完成后提交到GitHub上面,只要提交到GitHub上面,Docker Hub就知道Dockerfile文件被修改,它就会自动的去从新构建镜像,然后就可以从新下载最新的了。

通过这种方式构建出来的镜像会被标记为 Automated Build ,也称之为受信构建 (Trusted Build) ,这种构建方式构建出来的镜像,其他人在使用时可以自由的查看 Dockerfile 内容,知道该镜像是怎么来的,同时,由于构建过程是自动的,所以能够确保仓库中的镜像都是最新的。具体构建步骤如下:

添加仓库

首先登录到 Docker Hub,点击右上角的 用户信息处,然后选择 Account Settings,如下图:
在这里插入图片描述进入到的页面,选择 Link Account 按钮,然后,选择连接 GitHub ,在连接方式选择页面,我们选择第一种连接方式,如下:
在这里插入图片描述在这里插入图片描述选择完成后,按照引导登录 GitHub ,完成授权操作,授权完成后点击页面顶部的Respositories,然后选择Create Respository选项,按照如下步骤创建镜像:
在这里插入图片描述在这里插入图片描述
最后点击Create & Build 创建镜像

如此之后,我们的镜像就算构建成功了,一旦 GitHub 仓库中的 Dockerfile 文件有更新, Docker Hub 上的镜像构建就会被自动触发,不用人工干预,从而保证镜像始终都是最新的。

接下来,用户可以通过如下命令获取镜像:

docker pull shuping1996/mynginx

获取到镜像之后,再运行即可。
镜像更新只要更新自己的 GitHub 即可。镜像就会自动更新!事实上,我们使用的大部分 镜像都是这样生成的。

构建自己的 DockerHub

前面我们使用的 Docker Hub 是由 Docker 官方提供的,我们也可以搭建自己的 Docker Hub ,搭建方式也很容易,因为 Docker 官方已经将 Docker 注册服务器做成镜像了,我们直接 pull 下来运行即可,具体步骤如下:

拉取镜像
运行如下命令下载registry官方镜像,下载下来运行后它就是一个本地的docker hub了,就可以在本地提交镜像了:

  docker pull registry

运行
接下来运行如下命令将registry运行起来,如下:

docker run -itd --name registry -p 5000:5000 f32a97de94e1

在这里插入图片描述
运行成功后,我们就可以将自己的镜像提交到registry上了,如下:

在这里插入图片描述
这里需要注意的是,本地镜像的命名按照 registryHost:registryPort/imageName:tag 的格式命名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值