docker私有仓库(registry、harbor)
文章目录
1.docker仓库
仓库(Repository)是集中存放镜像的地方
1.1公共仓库
所有人都可以访问的一个远程docker仓库,该仓库中的所有镜像都是公开的,供下载使用
docker官方维护的公共仓库:
docker hub
国内的一些docker公共仓库:
DaoCloud
阿里云
…
1.2私有仓库
只有个人或团队内部的docker仓库,只有本地局域网的主机或通过授权的用户可以访问该仓库
几种搭建私有仓库的方案:
1.docker官方提供的搭建私有仓库工具registry
2.harbor私有仓库
1.2.1为什么要搭建私有仓库
- 公共仓库的镜像虽然多,但是没有针对于自己生产环境的镜像,不同生产环境对于镜像有不同需求
- 上传自己生产环境的镜像至公共仓库,任何人都可以下载,没有私密性、安全性
- dockerhub公共仓库毕竟是远程服务器,在下载连接速度会受到很大影响,影响工作效率
2.利用registry搭建私有仓库
Docker 官方提供了一个搭建私有仓库的镜像 registry ,只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了
#拉去registry镜像
docker pull registry
#启动registry容器
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --name myregirstry 678
##容器内默认/var/lib/registry用于存放上传的镜像,将其做挂载便于在宿主机查看,服务端口为5000做映射,678为镜像ID
访问网址192.168.58.20:5000/v2
可以查看到存储在仓库内的镜像
3.harbor私有仓库
- Harbor是VMware公司的开源级的企业级DockerRegistry(仓库)项目
- Harbor的目标是帮助用户迅速搭建一个企业级的DockerRegistry服务。
- Harbor以docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制(Role Based Access
Control),AD/LDAP集成,以及审计日志(Auditlogging)等企业用户需求的功能,同时还原生支持中文。 - Harbor的每个组件都是以Docker容器的形式构建的,使用docker-compose来对它进行部署。
- Docker harbor有可视化的web管理界面,可以方便管理Docker镜像,又提供了多个项目的镜像权限管理及控制功能
3.1优点
- 基于角色控制:用户与Docker镜像仓库通过"项目"进行组织管理,一个用户可以对多个镜像仓库在统一命名空间(projec)里有不同的权限
- 图形化用户界面:用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间
- 审计管理:所有这怒地镜像仓库的错都可以被记录追溯,用于审计管理
- 基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制。
- 支持LDAP认证:Harbor的用户授权可以使用已经存在的用户。
- 镜像删除和垃圾回收:image可以被删除并且回收image占用的空间。
- 简单的部署功能:harbor提供了online、offline安装,此外还提供了virtualappliance安装
- harbor和docker registry的关系:harbor实质上是对docker registry做了封装,扩展了自己的业务模板。
3.2搭建harbor私有仓库
确保docker-compose可以正常使用
harbor的各个组件用docker-compose构建为容器
which docker-compose
/usr/local/bin/docker-compose
docker-compose version
#查看版本信息
部署harbor
tar -zxvf harbor-offline-installer-v1.2.2.tgz
cd harbor/
vi harbor.cfg
hostname = 192.168.58.30 #修改主机名为本机IP
sh install.sh #使用其自带脚本部署harbor
登录192.168.58.30
默认账户名:admin
默认密码:Harbor12345
点击+项目,添加私有仓库
设置仓库名及设置公有/私有
此时创建好名为test的私有仓库
点击管理test仓库,点击推送镜像可查看推送镜像至此仓库方法
添加可使用此仓库的成员
3.3 harbor仓库公开和私有区别
若设为公开,所有人只需指定该仓库都可以推送及拉取该仓库的镜像,无需登录(docker login)该仓库
若设为私有,只有该仓库成员才可以登录该仓库并进行推送拉去镜像的操作
该仓库成员可在harbor管理界面添加用户,并加入该仓库的成员中。
3.4 harbor仓库维护及使用
可使用harbor目录下自带的工具来管理
工具为可供docker-compose控制的yml文件
需要修改harbor配置文件
若要修改harbor的配置文件,需先停止现有的harbor示例,然后运行prepare脚本来重新配置
docker-compose down -v #移除harbor服务容器同时保留镜像数据/数据库数据,移除容器、挂载卷、网络
vi harbor.cfg
...
...
./prepare #重新配置启动容器启动服务
如需要重新部署harbor,需要移除harbor服务容器所有数据
持久数据,如镜像,数据库,日志
rm -rf /data/database/
rm -rf /data/registry/
rm -rf /var/log/Harbor/
推送及拉取镜像
docker login 192.168。58.30 #登录该harbor仓库服务器
Username:
Password:
##交互输入登入账户密码,也可在登录时用-u指定用户名、-p指定密码
#修改镜像标签,用于上传镜像
docker tag nginx:latest 192.168.58.30/test/nginx:n1
#推送
docker push 192.168.58.30/test/nginx:n1
#拉取
docker pull 192.168.58.30/test/nginx:n1
其他机器远程登录该仓库
-需修改docker.service文件,Docker Registry 交互默认使用的是 HTTPS,但是搭建私有仓库默认使用的是 HTTP 服务,所以与私有镜像交互时会报错
vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// -- insecure-registry 192.168.58.30 -- containerd=/run/containerd/containerd.sock
systemctl restart docker
更多推荐
所有评论(0)