docker仓库管理以及搭建
docker仓库管理和容器连接
是什么?
仓库就类似于我们在网上搜索操作系统光盘的一个镜像站。
这里的仓库指的是Docker镜像存储的地方。
注册
在 https://hub.docker.com 免费注册一个 Docker 账号。
docker仓库
- 公有:Docker hub、Docker cloud、等
- 私有:registry、harbor等
- 本地:在当前主机存储镜像的地方
相关操作
docker login [仓库名称]
docker pull [镜像名称]
docker push [镜像名称]
docker search [镜像名称]
私有仓库部署(registry)
创建仓库流程
- 根据registry镜像创建容器
- 配置仓库权限
- 提交镜像到私有仓库
- 测试
实施方案
下载registry官方镜像
docker pull registry
启动仓库容器,用于提供私有仓库服务
docker run -d -p 5000:5000 registry
检查容器效果,此时仓库已搭建完毕。可以在本地或局域网内其他机器进行查看仓库内镜像(将ip改一下)
curl 127.0.0.1:5000/v2/_catalog
配置容器权限
- 默认情况下,该仓库是使用http去访问的,而docker客户端使用的是https去访问。不修改客户端配置,直接从私有仓库下载镜像会报错
vim /etc/docker/daemon.json
{"registry-mirrors": ["http://74f21445.m.daocloud.io"], "insecure-registries": ["192.168.205.183:5000"]}
注意:
私有仓库的ip地址是宿主机的ip,而且ip两侧有双引号
重启docker服务
- 结果报错如下,原因是修改配置写错
效果查看
启动容器
docker restart 571db56f7f77
标记镜像
注意需将镜像名称重命名为:仓库ip+端口+镜像名称的形式。否则会push仓库不成功
docker tag registry 192.168.205.183:5000/sub-registry
提交镜像到私有仓库
[ ~]# docker push 192.168.205.183:5000/sub-registry
验证查看是否提交成功
[ ~]# curl -X GET http://192.168.205.183:5000/v2/_catalog
{"repositories":["sub-registry"]}
a、若在启动时没有作数据卷挂载,则需进入到容器的/var/lib/registry查看
b、若在启动时,作了数据卷挂载,则可以直接在仓库服务器本地查看。建议需作数据卷挂载,一方面仓库容器意外被销毁时,本地可以有备份。另一方面,参看也相对简单
#### 从私有仓库下载镜像
[ ~]# docker pull 192.168.205.183:5000/sub-registry