Docker之Registry私有仓库+Harbor私有仓库的搭建 曾经终败给现在 2023-05-29 09:13 2阅读 0赞 > 博文大纲: > > * 一、搭建Registry私有仓库 > * 二、配置Harbor私有仓库 这篇博文写的是两种不同的搭建Docker私有仓库的方法,都必须要基于一个Docker服务器上,相比较而言,Harbor功能更强大些。 之前详细写过Registry私有仓库的搭建方法,这里的Registry只是有一点配置不一样而已,若要搭建Registry私有仓库,最好结合:[Docker镜像的创建+构建私有仓库及其使用方法][Docker]这篇博文来,对比其不一样的地方,选择适合自己的方案。 ## 一、搭建Registry私有仓库 ## > 环境准备: > > * 两台centos 7.3,一台为Docker私有仓库服务器,另一台为测试端,两台须可ping通; > * 参考博文:[Docker的安装详细配置][Docker 1],对两台服务器进行安装docker环境。 ### 1、开始配置第一台Docker私有仓库服务器: ### [root@docker ~]# docker pull registry #下载registry镜像 [root@docker ~]# docker run -tid --name registry --restart=always -p 5000:5000 -v /data/registry:/var/lib/registry registry #运行该镜像,各个选项含义如下: # -tid:以后台持久运行,并分配一个可交互的为终端 # --name registry :给容器定义一个名字 # --restart=always:该容器可以随着docker服务的启动而启动 # -p:将容器的端口映射到宿主机,冒号前面是宿主机的端口,冒号后面是容器的端口,registry的默认端口是5000 # -v:将宿主机的目录挂载到容器中,冒号前面是宿主机的目录,冒号后面是容器中的目录 [root@docker ~]# docker images #查看当前的镜像 REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 0f3e07c0138f 2 weeks ago 220MB registry latest f32a97de94e1 7 months ago 25.8MB [root@docker ~]# docker tag centos:latest 192.168.20.7:5000/centos:latest #更改镜像名称,以便符合私有仓库名称规范 #注:私有仓库镜像的命名规则:192.168.20.7:5000/XXX(宿主机的IP:5000端口/镜像名称) [root@docker ~]# vim /usr/lib/systemd/system/docker.service #更改docker的配置文件,以便指定私有仓库 ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.20.7:5000 #定位到上面那行,在后面添加“--insecure-registry”并指定私有仓库的IP及端口,然后保存退出即可 [root@docker ~]# systemctl daemon-reload #重载配置文件 [root@docker ~]# systemctl restart docker #重启docker服务 [root@docker ~]# docker push 192.168.20.7:5000/centos:latest #上传镜像至私有仓库 [root@docker ~]# curl 192.168.20.7:5000/v2/_catalog #查看私有仓库中的镜像 {"repositories":["centos"]} [root@docker ~]# curl 192.168.20.7:5000/v2/centos/tags/list #查看镜像的详细信息 {"name":"centos","tags":["latest"]} ### 2、第二台Docker服务器进行如下操作: ### [root@docker02 ~]# vim /usr/lib/systemd/system/docker.service #编辑主配置文件 ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.20.7:5000 #定位到上面那行,添加“--insecure-registry”指定私有仓库的IP及参数 #添加完成后,保存退出即可 [root@docker02 ~]# systemctl daemon-reload #重载配置文件 [root@docker02 ~]# systemctl restart docker #重启docker服务 [root@docker02 ~]# docker pull 192.168.20.7:5000/centos:latest #下载私有仓库的中的镜像 [root@docker02 ~]# docker images #确认下载的镜像 ## 二、配置Harbor私有仓库 ## Harbor私有仓库和第一个Registry私有仓库相比较而言,功能强大很多,并且支持web图形化管理,推荐使用。 > 环境和搭建Registry的一样,如下: > > * 两台centos 7.3,一台为Docker私有仓库服务器,另一台为测试端,两台须可ping通; > * 参考博文:[Docker的安装详细配置][Docker 1],对两台服务器进行安装docker环境。 ### 1、打开github.com官网,在登录页面的右上角搜索compose找到docker/compose再找releases,(网址:[https://github.com/docker/compose/releases][https_github.com_docker_compose_releases]) 如下: ### ![Docker之Registry私有仓库+Harbor私有仓库的搭建][Docker_Registry_Harbor] 复制自己所需版本下提供的两条命令,在第一台Docker服务器上依次进行操作: [root@docker ~]# yum -y install yum-utils device-mapper-persistent-data lvm2 #安装依赖包 [root@docker ~]# curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose #复制官网上的上述命令 [root@docker ~]# chmod +x /usr/local/bin/docker-compose #赋予该命令执行权限 [root@docker ~]# docker-compose -version #查看其版本信息 docker-compose version 1.24.1, build 4667896b ### 2、去github官网搜索harbor,再点击goharbor/harbor,再点击“releases”,根据自己所需,下载相应的版本,上传至服务器(网址如下:[https://github.com/goharbor/harbor/releases][https_github.com_goharbor_harbor_releases] 也可下载在线安装的包,我没试过,可自行尝试),如下: ### ![Docker之Registry私有仓库+Harbor私有仓库的搭建][Docker_Registry_Harbor 1] [root@docker ~]# tar zxf harbor-offline-installer-v1.7.4.tgz -C /usr/src #将下载的安装包解压到指定目录 [root@docker src]# cd /usr/src/harbor/ #切换至解压后的目录中 [root@docker harbor]# vim harbor.cfg #编辑这个配置文件 ..............#省略部分内容 hostname = 192.168.20.7 #将hostname更改为本机IP harbor_admin_password = Harbor12345 #这行指定的是登录harbor的登录名及密码 #默认用户为“admin”,密码为“Harbor12345” ..............#省略部分内容 [root@docker harbor]# ./install.sh #执行自带的安装脚本 [root@docker harbor]# netstat -antp | grep 80 #确定80端口正在监听 [root@docker harbor]# vim /usr/lib/systemd/system/docker.service #编辑docker主配置文件 ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.20.7:80 #定位到该行,添加“--insecure-registr”以便指定harbor的IP及其监听端口 [root@docker harbor]# systemctl daemon-reload #重新加载配置文件 [root@docker harbor]# systemctl restart docker #重启docker服务 [root@docker harbor]# docker-compose stop #停止所有容器 [root@docker harbor]# docker-compose start #启动所有容器 ### 3、使用浏览器访问harbor服务器的IP地址,使用配置文件中指定的用户名及密码登录(默认用户为“admin”,密码为“Harbor12345”): ### ![Docker之Registry私有仓库+Harbor私有仓库的搭建][Docker_Registry_Harbor 2] \*\* ### 4、点击“新建项目”: ### ![Docker之Registry私有仓库+Harbor私有仓库的搭建][Docker_Registry_Harbor 3] ### 5、定义项目名称: ### ![Docker之Registry私有仓库+Harbor私有仓库的搭建][Docker_Registry_Harbor 4] ### 6、回到Harbor服务器,开始想Harbor上传镜像: ### [root@docker harbor]# docker login -u admin -p Harbor12345 192.168.20.7:80 #命令行登录到harbor [root@docker harbor]# docker tag centos:latest 192.168.20.7:80/test/centos:latest #更改镜像名称 #注意要上传至harbor仓库的命名规范,其中test是刚才在harbor创建的项目 [root@docker harbor]# docker push 192.168.20.7:80/test/centos:lates #上传至harbor ### 7、测试,第二台Docker的测试端配置如下: ### [root@docker02 ~]# vim /usr/lib/systemd/system/docker.service #编辑其配置文件 ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.20 .7:80 #指定Harbor服务器的IP地址及80端口 [root@docker02 ~]# systemctl daemon-reload [root@docker02 ~]# systemctl restart docker #重启docker [root@docker02 ~]# docker login -u admin -p Harbor12345 192.168.20.7:80 #登录到私有仓库 [root@docker02 ~]# docker pull 192.168.20.7:80/test/centos:latest #至此即可下载第一台docker服务器上传的镜像 ———————— 本文至此结束,感谢阅读 ———————— [Docker]: https://blog.51cto.com/14154700/2436956 [Docker 1]: https://blog.51cto.com/14154700/2442086 [https_github.com_docker_compose_releases]: https://github.com/docker/compose/releases [Docker_Registry_Harbor]: https://s1.51cto.com/images/blog/201910/17/88abfd6c5c718b961f45c33f1a25ab64.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk= [https_github.com_goharbor_harbor_releases]: https://github.com/goharbor/harbor/releases [Docker_Registry_Harbor 1]: https://s1.51cto.com/images/blog/201910/17/2a01c695277dc96c750680a74386f459.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk= [Docker_Registry_Harbor 2]: https://s1.51cto.com/images/blog/201910/17/0c267cd1eadf422716f29b41368b7623.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk= [Docker_Registry_Harbor 3]: https://s1.51cto.com/images/blog/201910/17/b6676bdb8bc7438b3c2f3754ad71fd97.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk= [Docker_Registry_Harbor 4]: https://s1.51cto.com/images/blog/201910/17/29d8d8f200bc3b1e3b19e9501939be50.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
还没有评论,来说两句吧...