docker核心概念(3)-仓库
仓库(Repository)
Docker仓库(Repository)类似与代码仓库,是Docker集中存放镜像文件的场所。
这里的仓库Repository和注册服务器Registry是两个概念,注册服务器是存放仓库的地方,其上往往存放着多个仓库。每个仓库集中存放某一类镜像,往往包括多个镜像文件,通过不同的标签(tag)来进行区分。例如存放Ubuntu操作系统镜像的仓库,称为Ubuntu仓库,其中可能包括14.04,12.04等不同版本的镜像。
Docker仓库分为公开仓库(Public)和私有仓库(Private)两种形式。目前,最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括Docker Pool等,可以提供稳定的国内访问。
如果用户不希望公开分享自己的镜像文件,Docker也支持用户在本地网络内创建一个只能自己访问的私有仓库。
当用户创建了自己的镜像之后就可以使用push命令将它上传到指定的公有或则私有仓库。这样用户下次在另一台机器上使用该镜像时,只需将其从仓库pull下来就可以了。
可以看到,Docker利用仓库管理镜像的设计理念甚至命令和git非常相似。
从仓库搜索下载镜像的命令前面已经讲过,在此不在赘述。这里简单讲一下如何创建和管理私有仓库
1.使用registry镜像创建私有仓库
registry是Docker官方提供的用了搭建本地私有仓库环境:
docker run -d -p 5000:5000 registry //(-d 指后台运行,-p指映射到本地主机端口)
这将自动下载并启动一个registry容器,创建本地的私有仓库服务。
2.管理私有仓库
创建一个镜像,并上传到私有仓库上。
第一次push的时候会报错:If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry
这是因为docker在1.3.x之后registry默认支持https,若要支持http,需要在insecure-registry加入你的ip地址,然后重启docker。
再次push就可以成功了。