什么是仓库(Repository)
仓库是集中存放镜像的地方。混淆名词-注册服务器(Registry),实际上注册服务器是存放仓库的具体服务器,每个服务器可以有多个仓库,而仓库下面有多个镜像。仓库又分为公共仓库与私有仓库。
公共仓库
- 1. 网易云镜像中心
点击链接–>登录–>再点击链接即可进入镜像中心,可在页面上进行搜索想要的镜像,在列表中点击选定的镜像,会出现镜像的信息及下载地址,复制地址作为命令执行即可。 - 2. DaoCloud镜像中心
页面搜索,点击想要的镜像,切换到版本,点击拉取,复制串。docker pull <复制串>作为命令执行即可。 - 3. Docker Hub
不需要注册,直接搜索即可,操作与上面类似。这个也是docker默认的镜像仓库(注册服务器:docker.io),所以执行命令显得比其它简短。在进行镜像的拉取时可能会出现无法拉去的现象,配置镜像加速即可—–>docker中国或者阿里镜像加速服务(需先登录)。配置后记得重启docker哦。
本地仓库
官方提供了registry镜像来搭建简单的本地私有仓库环境:
先拉取镜像(这里是在默认注册服务器拉取):
docker pull registry
拉取成功后,启动容器并设置监听端口为5000:
docker run -d -p 5000:5000 registry
默认情况下将仓库创建在容器的/tmp/registry目录下,可使用参数将镜像文件存放在本地指定的路径下:
docker run -d -p 5000:5000 -v /usr/local/registry:/tmp/registry registry
一切正常则已经创建好了本地仓库服务,我们试着push镜像到仓库。首先查看本地镜像:
docker images
给本地镜像打标签:
docker tag <REPOSITORY>:<TAG> <NEW REPOSITORY>:<TAG>
例子(省略tag默认latest):
docker tag docker.io/registry 127.0.0.1:5000/registry
将打了标签的镜像push到仓库:
docker push <REPOSITORY>:<TAG>
例子(省略tag默认latest):
docker push 127.0.0.1:5000/registry