Docker 快速上手系列(3): 仓库的概念及相关操作

时间:2022-09-03 15:42:22

Docker Hub

首先我们先区分下两个概念,一个是仓库,一个是注册服务器。
Docker里仓库是集中存放镜像的地方,而注册服务器是放仓库的,
一个注册服务器可以存放多个仓库,例如:

dl.dockerpool.com/ubuntu 
#注册服务器的地址是dl.dockerpool.com
#仓库的名字是ubuntu

什么是Docker Hub,如果你用过Github,其实Docker Hub和Github
类似,前者是存放管理镜像的地方,后者是存放管理代码的地方。其实
现的方式是一样的。

可以在本机通过docker login 命令进行注册。注册完成后用户的目录下会有一个.dockercfg的文件,你的认证信息会存放在这里
这里我们找一个ubuntu镜像
Docker 快速上手系列(3): 仓库的概念及相关操作
这里会发现有两种形式的name,一种是一个单词组成的比如第一个,从后后面的字段的信息可以看出这是这是官方的标配版镜像。
第二种形式xxx/xxx。比如:

ansible/ubuntu14.04-ansible #这个意思是docker用户ansible创建的一个版本的ubuntu镜像

自动更新容器内镜像的程序

可能你会遇到一个问题,应用程序更新的问题,或是异性新特性必须要新版本才能用。
这里的自动更新就帮我们解决了这个问题,Docker的自动创建功能使得用户通过Docker Hub指定跟踪一个目标网站(目前只支持Github和BitBucket)上的项目,这些项目一旦有新版本提交,Docker则会自动执行创建。如果来配置自动创建呢?
步鄹如下:
1:创建并登录Docker hub,关联目标网站
2:在Docker Hub中配置一个自动创建
3:选取一个目标网站中的项目和分支
4:制定Dockerfile的位置,并提交创建
之后在Docker Hub中的“自动创建”页面中跟踪每次创建的状态

#这里我们只是说下流程,在博客中有一篇关于怎么配置Docker的自动创建的专题文章

创建和使用私有仓库

在安装Docker完成后,可以通过官方提供的registry镜像来简单的搭建一套本地私有仓库环境:

docker run -d -p 5000:5000 registry
#这里的-p 5000:5000是指把宿主机的5000端口映射到registry镜像容器的5000端口上。

在自动下载并启动一个registry容器后,会创建一个本地私有仓库服务,默认情况下,会将仓库创建在容器的/tmp/registry目录下。可以通过-v参数来将镜像文件存放在本地的制定的路径上。

docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry

私有仓库镜像的管理

docker images

Docker 快速上手系列(3): 仓库的概念及相关操作
使用Docker tag命令将镜像job1:latest标记为127.0.0.1:5000/test格式

docker tag job1:latest 127.0.0.1:5000/test

Docker 快速上手系列(3): 仓库的概念及相关操作
接下来我们使用Docker push 上传标记的镜像:

docker push 127.0.0.1/test
#我们把镜像推向我们配置的私有服务器的test仓库,当然这里我们是在本机模拟的