Docker 仓储(Registry)是存放镜像的一个共享位置。我们可以不用用户和口令就能从Docker Hub下载镜像。
A “registry” is a service for hosting lots of image repositories, potentially from different users. A “repository” is an image library that potentially holds many different tagged images
1. 在Docker Hub注册一个账号
注册完以后登陆结果:
2. 向Docker CLI增加Crediential(docker login)
3. push镜像
下面的操作是失败的,主要原因是和我的Docker HUB结构不一致下面是正确方法:
Docker image repositories 使用这种格式: {user}/{app}, but often the tag is used to specify a release version, or a variant of the image, 它会采用这种格式: {user}/{app}:{tag}. 如果不指定tag,则默认使用latest tag.
docker image push很智能的,比如我的镜像引用ubuntu为基础镜像,由于ubuntu这个镜像在docker hub里面是存在的,所以它不会把ubuntu这个layer也push进去
4. pull操作
5. 自动构建
即把dockerfile放到github上,然后让docker hub关联到github上,当我们提交变更到github上时,dockerhub自动构建镜像
5.1 Github上的仓库结构
注意这里的Dockerfile文件是必须的
5.2 在Docker Hub上创建自动构建仓库
注意:这个过程会涉及授权,截图如下:
我们可以从Gitab查看被授权的Dockerhub信息:
或者从这个位置看:
5.3 触发自动构建镜像实验
我们修改gitlab上的代码
接着去查看Docker Hub上的自动构建:
过一会再去看:
你会注意到Dockerfiler已经被自动copy过来了:
6 本地Registry的搭建
6.1 首先运行Registry镜像
使用官方的 registry image来启动本地的私有仓库。 用户可以通过指定参数来配置私有仓库位置,默认情况下,仓库会被创建在容器的/tmp/registry 下。可以通过 -v 参数来将镜像文件存放在本地的指定路径
6.2 tag一个镜像后才能push到Registry上
创建好私有仓库之后,就可以使用 docker image tag 来标记一个镜像,然后推送它到仓库
6.3 使用REST API 访问Docker Registry
我们可以列出local registry里面所有的repositories