docker核心概念(3)-仓库

2017-07-25  本文已影响13人  北你妹的风

仓库(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就可以成功了。

上一篇下一篇

猜你喜欢

热点阅读