Registry
* 有时候使用 Docker Hub 这样的公共仓库可能不方便, 用户可以创建一个本地仓库供私人使用.
* docker-registry 是官方提供的工具, 可以用于构建私有的镜像仓库.
注:
* 随着 docker 使用的镜像越来越多, 就需要有一个保存镜像的地方, 这就是仓库.
* 目前常用的两种仓库:
公共仓库和私有仓库. 最方便的就是使用公共仓库上传和下载,
下载公共仓库的镜像是不需要注册的, 但是上传时, 是需要注册的.
* 私有仓库最常用的就是 registry,Harbor 两种, 那接下来详细介绍如何创建私有仓库.
* 今天说的 Registry 仓库, 是通过一个容器给我们提供的服务, 是比较简
易的私有仓库, 以后在企业中还会有功能更加完善的 Harbor 仓库.
一, 搭建 registry 私有仓库
1)案例描述
两台 docker 服务器, dockerA 创建 registry 私有仓库, dockerB 用于测试!
- dockerA:
- [[email protected] ~]# docker pull registry:2 // 下载 registry:2 的镜像
- [[email protected] ~]# docker run -itd --name registry --restart=always -p 5000:5000 -v /registry:/var/lib/registry registry:2
- // 创建一个 registry 容器来运行 registry 服务;
- //-p: 端口映射(前面是宿主机端口: 后面是容器暴露的端口);
- //-v: 挂载目录 (前面是宿主机的目录: 后面的是容器的目录) 自动创建宿主机的目录;
- //--restart=always: 随 docker 服务的启动而启动!
- [[email protected] ~]# docker tag CentOS:7 192.168.45.129:5000/CentOS:7
- // 更改镜像名称
注: 私有仓库镜像的命名规则: 192.168.45.129:5000/XXX(宿主机的 IP:5000 端口 / 镜像名称)
- [[email protected] ~]# VIM /usr/lib/systemd/system/docker.service // 修改 docker 主配置文件
- ExecStart=/usr/bin/dockerd --insecure-registry 192.168.45.129:5000
- // 修改原本的配置文件添加不安全的仓库(--insecure-registry), 地址是宿主机的 IP 地址与 5000 端口
- [[email protected] ~]# systemctl daemon-reload
- [[email protected] ~]# systemctl restart docker // 重新启动 docker 服务
- [[email protected] ~]# docker push 192.168.45.129:5000/CentOS:7
- // 将重命名后的镜像上传到 registry 私有仓库
- [[email protected] ~]# curl 192.168.45.129:5000/v2/_catalog // 查看私有仓库中的镜像
- {"repositories":["centos"]}
- [[email protected] ~]# curl 192.168.45.129:5000/v2/CentOS/tags/list // 查看镜像的详细信息
- {"name":"centos","tags":["7"]}
- dockerB:
- [[email protected] ~]# VIM /usr/lib/systemd/system/docker.service
- // 修改 docker 的主配置文件
- ExecStart=/usr/bin/dockerd --insecure-registry 192.168.45.129:5000
- // 添加内容与 registry 一致, 指定 registry 私有仓库服务器的 IP 地址及端口
- [[email protected] ~]# systemctl daemon-reload
- [[email protected] ~]# systemctl restart docker // 重新启动 docker 服务
- [[email protected] ~]# curl 192.168.45.129:5000/v2/_catalog // 查看私有仓库中的镜像
- {"repositories":["centos"]}
- [[email protected] ~]# curl 192.168.45.129:5000/v2/CentOS/tags/list // 查看私有仓库中的镜像
- {"name":"centos","tags":["7"]}
- [[email protected] ~]# docker pull 192.168.45.129:5000/CentOS:7
来源: http://www.bubuko.com/infodetail-3651176.html