通过前面的学习,大家对于 Docker 的基本操作相信已经基本掌握了,本文就来和大家说说关于 Docker 的另外两个话题: DockerHub 和 容器网络!
本文是本系列的第五篇,阅读前面的文章有助于更好的理解本文:
DockerHub
DockerHub 类似于 GitHub 提供的代码托管服务,Docker Hub 提供了镜像托管服务,Docker Hub 地址为 https://hub.docker.com/。
利用 Docker Hub 读者可以搜索、创建、分享和管理镜像。Docker Hub 上的镜像分为两大类,一类是官方镜像,例如我们之前用到的 nginx、mysql 等,还有一类是普通的用户镜像,普通用户镜像由用户自己上传。对于国内用户,如果觉得 Docker Hub 访问速度过慢,可以使用国内一些公司提供的镜像,例如网易:
本文使用官方的 Docker Hub 来演示,读者有兴趣可以尝试网易的镜像站。
首先读者打开 Docker Hub ,注册一个账号,这个比较简单,我就不赘述了。
账号注册成功之后,在客户端命令行可以登录我们刚刚注册的账号,如下:
看到 Login Succeeded 表示登录成功!
登录成功之后,接下来就可以使用 push 命令上传我们自制的镜像了。注意,自制的镜像要能够上传,命名必须满足规范,即 namespace/name
格式,其中 namespace 必须是用户名,以前文我们创建的 Dockerfile 为例,这里重新构建一个本地镜像并上传到 Docker Hub ,如下:
首先调用 docker build 命令重新构建一个本地镜像,构建成功后,通过 docker images 命令可以看到本地已经有一个名为 wongsung/nginx 的镜像,接下来通过 docker push 命令将该镜像上传至服务端。上传成功后,用户登录Docker Hub ,就可以看到刚刚的镜像已经上传成功了,如下:
看到这个表示镜像已经上传成功了,接下来,别人就可以通过如下命令下载我刚刚上传的镜像:
docker
pull wongsung/nginx
pull下来之后,就可以直接根据该镜像创建容器了。具体的创建过程读者可以参考我们本系列前面的文章。
自动化构建
自动化构建,就是使用 Docker Hub 连接一个包含 Dockerfile 文件的 GitHub 仓库或者 BitBucket 仓库, Docker Hub 则会自动构建镜像,通过这种方式构建出来的镜像会被标记为 Automated Build ,也称之为受信构建 (Trusted Build) ,这种构建方式构建出来的镜像,其他人在使用时可以自由的查看 Dockerfile 内容,知道该镜像是怎么来的,同时,由于构建过程是自动的,所以能够确保仓库中的镜像都是最新的。具体构建步骤如下:
- 添加仓库
首先登录到 Docker Hub,点击右上角的 Create,然后选择 Create Automated Build ,如下图:
则新进入到的页面,选择 Link Account 按钮,然后,选择连接 GitHub ,在连接方式选择页面,我们选择第一种连接方式,如下:
选择完成后,按照引导登录 GitHub ,完成授权操作,授权完成后的页面如下:
- 构建镜像
授权完成后,再次点击右上角的 Create 按钮,选择 Create Automated Build ,在打开的页面中选择 GitHub ,如下两张图:
这里展示了刚刚关联的 GitHub 上的仓库,只有一个 docker ,然后点击进去,如下:
填入镜像的名字以及描述,然后点击 Create 按钮,创建结果如下:
如此之后,我们的镜像就算构建成功了,一旦 GitHub 仓库中的 Dockerfile 文件有更新, Docker Hub 上的镜像构建就会被自动触发,不用人工干预,从而保证镜像始终都是最新的。
接下来,用户可以通过如下命令获取镜像:
docker pull wongsung/nginx2
获取到镜像之后,再运行即可。
有没有觉得很神奇!镜像更新只要更新自己的 GitHub 即可。镜像就会自动更新!事实上,我们使用的大部分 镜像都是这样生成的。