docker 仓库的概念与java的maven仓库非常类似,它们都用来存储数据,maven仓库存储的是 jar 包,docker 仓库存储的是镜像。许多第三方私有仓库工具如 nexus 既可以构建 maven 仓库,也支持 docker 仓库。

1. 镜像仓库和注册表

1.1. Registry

镜像注册表,用来存储镜像数据的地方,官方的Docker hub就是一个公共的Registry,另外,还可以通过官方的registry镜像搭建私有的镜像注册表。通常所说的镜像仓库是泛指Registry,但并不完全准确,一个Registry可以包含多个Repository。 例如,拉取镜像:docker pull registry.hub.docker.com/ubuntu:18.04,这里的registry.hub.docker.com就是官方提供的镜像注册表,可以省略不写。

1.2. Repository

镜像库,包含多个镜像,存储于Registry中。在仓库搜索镜像时,按名称搜索在registry中查找repository。例如,我们所说的nginx镜像,一般就是指的nginx的Repository,它包含多个nginx镜像,它们通过tag来区分。

镜像的类别:

  • 根镜像:Docker官方提供的基础镜像,单名字,如centos、ubuntu等

  • 用户的镜像:由docker用户创建并维护的镜像,带有用户名前缀,表明是某用户下的仓库,例如:ansible/centos7-ansible,belonk/mynginx等

第三方镜像市场:阿里云、腾讯云、网易云等等

2. 搭建本地私有仓库

执行如下命令:

docker run -d -p 5000:5000 registry:2

它会下载并启动一个registry容器,registry对应的是仓库镜像,版本为2。

上传镜像到本地私有仓库:

  • 标记镜像: docker tag ubuntu IP:端口/镜像

  • 上传镜像: docker push IP:端口/镜像

3. 基本操作

  • 登录Docker hub

Docker Hub是官方的公共镜像仓库,注册账号,然后在命令行进行登录:

docker login

输入账号和密码登录即可,登录信息保存在 ~/.docker/config.json

  • 下载镜像

docker [image] pull
  • 搜索镜像

docker search IMAGE
  • 上传镜像

docker [image] push [REGISTRY_HOST[:REGISTRY_PORT] / ]NAME[:TAG]

相关阅读