介绍:
Registry用于保存docker镜像,包括镜像的层次结构和元数据
用户可自建Registry,也可使用官方的Docker Hub
分类:
- Sponsor Registry: 第三方的registry,供客户和Docker社区使用
- Mirror Registry: 第三方的registry,只让客户使用
- Vendor Registry: 由发布Docker镜像的供应商提供的registry
- Private Registry: 通过设有防火墙和额外的安全层的私有实体提供的
安装docker-resitry:
~]# yum -y install docker-registry
查看docker-registry安装后各目录:
~]# rpm -ql docker-registry /etc/docker-distribution/registry/config.yml // registry的配置文件 /usr/bin/registry // registry命令程序所在目录 /usr/lib/systemd/system/docker-distribution.service /usr/share/doc/docker-distribution-2.6.2 /usr/share/doc/docker-distribution-2.6.2/AUTHORS /usr/share/doc/docker-distribution-2.6.2/CONTRIBUTING.md /usr/share/doc/docker-distribution-2.6.2/LICENSE /usr/share/doc/docker-distribution-2.6.2/MAINTAINERS /usr/share/doc/docker-distribution-2.6.2/README.md /var/lib/registry // 镜像所存位置
查看docker-registry的配置文件:
~]# cat /etc/docker-distribution/registy/config.yml version: 0.1 log: fields: service: registry storage: cache: layerinfo: inmemory // 缓存在内存中 filesystem: rootdirectory: /var/lib/registry // 数据存储路径 http: addr: :5000 // 监听端口
启动服务:
~]# systemctl start docker-distribution ~]# ss -nlt | grep 5000
LISTEN 0 128 :::5000 :::*
推送镜像到registry:
~]# docker images ..... myweb v0.3-9 7d72ff5e7b03 2 hours ago 16MB
.....
~]# docker tag myweb:v0.3-9 hadoop2:5000/myweb:v0.3-9 // 要将tag改为registry服务器的hostname:port/tag
~]# docker push hadoop2:5000/myweb:v0.3-9 // 推送镜像到resistry,第一次会报错,因为客户端默认使用https协议
Get https://hadoop2:5000/v2/: http: server gave HTTP response to HTTPS client
~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://l10nt4hq.mirror.aliyuncs.com"], // 镜像下载加速
"bip": "10.0.0.1/16", // docker桥的地址,新建容器时会依次分配地址
"hosts": ["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"], // 允许对外监听
"insecure-registries": ["hadoop2:5000"] // 添加此行
}
~]# systemctl restart docker // 重启服务生效
~]# docker push hadoop2:5000/myweb:v0.3-9 // 再次推送,成功
~]# ll /var/lib/registry // 会生成一个docker目录,数据都在docker目录下
docker