仓库是存放镜像的地方
注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,每个仓库也可以有多个镜像
如 dl.dockerpool.com/ubuntu ,dl.dockerpool.com就是注册服务器地址,ubuntu是仓库名
一、Docker Hub公共镜像市场
Docker Hub是官方维护的一个公共镜像仓库
1、登录
docker login命令登录docker服务器
2、基本操作
1)、搜索centos镜像命令,OFFICIAL代表是官方的,STARTS代表星级,AUTOMATED代表是否自动创建
根据镜像资源一般分为两类,其一是基础或根镜像,由docker公司创建、验证、支持、提供,一般使用一个单词作为名字,如docker.io/centos
其二是用户提供的镜像,一般要在前面带有用户名,如docker.io/ansible/centos-ansible
docker search centos
2)、拉取镜像命令
docker pull centos 会默认拉取docker中centos仓库下最新镜像,tag为latest
3)、使用docker push [repository]命令推送镜像到仓库,repository为注册服务器地址/用户/仓库,如果没有注册服务地址则默认为docker.io
我在docker官网创建的仓库如下
如果镜像的repository不是标准仓库,则不能推送成功
如果仓库注册服务地址下没有该仓库也推送不成功
确保镜像repository正确,如果该镜像不是标准repository,要用docker tag [ImageID]命令创建一个
推送后会在自己的仓库下找到
或省略docker.io,默认会到docker.io注册服务器,如果已经推送过,会报告已存在,同时更新推送的时间
3、自动创建
对于经常升级镜像内的程序来说十分方便,自动创建允许用户通过Docker Hub指定跟踪一个目标网站(目前支持GitHub或BitBucket)上的项目,一旦发生新的提交,则自动执行创建
二、其他镜像市场,如时速云、阿里云等
以时速云镜像市场为例,时速云镜像服务器地址https://hub.tenxcloud.com/
如搜索centos,回车
进入第一个镜像,会看到拉取方式及其他配置信息
docker pull index.tenxcloud.com/tenxcloud/centos
三、搭建本地私有仓库
1、使用registry镜像创建私有仓库
docker pull registry拉取registry镜像
docker run -d -p 5000:5000 registry 本地端口映射,推送来的镜像默认存放在容器/tmp/registry目录下;
或使用
docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry 使用-v参数来将镜像存放在本地/opt/data/registry目录下
然后将镜像打标签,推送即可
在本地,docker rmi db2a删除,再docker pull 127.0.0.1:5000/test重新拉取