Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Docker 部署Registry私有仓库+Harbor私有仓库

Docker 部署Registry私有仓库+Harbor私有仓库

作者头像
小手冰凉
发布于 2020-08-05 07:16:35
发布于 2020-08-05 07:16:35
1.8K00
代码可运行
举报
文章被收录于专栏:小手冰凉小手冰凉
运行总次数:0
代码可运行

有时候使用 Docker Hub 这样的公共仓库可能不方便,用户可以创建一 个本地仓库供私人使用。 两种不同的搭建Docker私有仓库的方法,都必须要基于一个Docker服务器上,相比较而言,Harbor功能更强大些。 之前详细写过Registry私有仓库的搭建方法,这里的Registry只是有一点配置不一样而已,若要搭建Registry私有仓库,最好结合:Docker 镜像的创建与构建私有库,对比其不一样的地方,选择适合自己的。

一、搭建Registry私有仓库

环境如下

host

IP

service

docker01

192.168.171.150

docker私有仓库

docker02-test

192.168.171.151

test

docker安装可参考部署 Docker

1、开始配置第一台Docker私有仓库服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@docker01 ~]# docker pull registry
[root@docker01 ~]# 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@docker01 ~]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
registry            latest              2d4f4b5309b1        6 weeks ago         26.2MB
centos              7                   b5b4d78bc90c        3 months ago        203MB
[root@docker01 ~]# docker tag centos:7 192.168.171.150:5000/centos:7                  # 更改镜像名称,以便符合私有仓库名称规范
#注:私有仓库镜像的命名规则:192.168.171.150:5000/XXX(宿主机的IP:5000端口/镜像名称)
[root@docker01 ~]# vim /usr/lib/systemd/system/docker.service 
ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.171.150:5000              #更改docker的配置文件,以便指定私有仓库
#定位到上面那行,在后面添加“--insecure-registry”并指定私有仓库的IP及端口
[root@docker01 ~]# systemctl daemon-reload 
[root@docker01 ~]# systemctl restart docker         # 重启使配置生效
[root@docker01 ~]# docker push 192.168.171.150:5000/centos:7          # 上传镜像到私有仓库
[root@docker01 ~]# curl 192.168.171.150:5000/v2/_catalog          #查看私有仓库中的镜像
{"repositories":["centos"]}
[root@docker01 ~]# curl 192.168.171.150:5000/v2/centos/tags/list             #查看镜像的详细信息
{"name":"centos","tags":["7"]}

2、第二台Docker服务器进行测试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@docker02-test ~]# vim /usr/lib/systemd/system/docker.service 
ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.171.150:5000
#定位到上面那行,添加“--insecure-registry”指定私有仓库的IP及参数
[root@docker02-test ~]# systemctl daemon-reload 
[root@docker02-test ~]# systemctl restart docker 
[root@docker02-test ~]# docker pull 192.168.171.152:5000/centos:7
[root@docker02-test ~]# docker images 
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
192.168.171.152:5000/centos   7                   b5b4d78bc90c        3 months ago        203MB

二、配置Harbor私有仓库 Harbor私有仓库和第一个Registry私有仓库相比较而言,功能强大很多,并且支持web图形化管理,推荐使用。

环境如下

hostname

IP

service

docker01

192.168.171.151

harbor

docker03

192.168.171.152

test

1、打开github.com官网,在登录页面的右上角搜索compose---->找到docker/compose---->再找releases 网址

复制自己所需版本下提供的两条命令,在第一台Docker服务器上依次进行操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@docker01 ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
[root@docker01 ~]# curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
[root@docker01 ~]# chmod +x /usr/local/bin/docker-compose        #赋予该命令执行权限
[root@docker01 ~]# docker-compose --version
docker-compose version 1.25.0-rc2, build 661ac20e

2、去github官网搜索harbor------>再点击goharbor/harbor------->再点击“releases”

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@docker01 ~]# tar zxf harbor-offline-installer-v1.9.1.tgz 
[root@docker01 ~]# cd harbor/
[root@docker01 harbor]# vim harbor.yml 

hostname: 192.168.171.151                # 将hostname更改为本机IP
                         ...........
harbor_admin_password: Harbor12345              # 这行指定的是登录harbor的登录名及密码
[root@docker01 harbor]# ./install.sh           # 执行安装脚本
✔ ----Harbor has been installed and started successfully.----
[root@docker01 harbor]# ss -anput | grep 80           # 确定80端口在监听
[root@docker01 harbor]# vim /usr/lib/systemd/system/docker.service 
ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.171.151:80
#定位到该行,添加“--insecure-registr”以便指定harbor的IP及其监听端口
[root@docker01 harbor]# systemctl daemon-reload 
[root@docker01 harbor]# systemctl restart docker 
[root@docker01 harbor]# docker-compose stop        # 停止所有容器
[root@docker01 harbor]# docker-compose start         # 再启动所有容器 
#其实harbor容器都配置的随着docker启动而启动,主要我这里是为了以防万一有个容器没启来

3、使用浏览器访问harbor服务器的IP地址,使用配置文件中指定的用户名及密码登录(默认用户为“admin”,密码为“Harbor12345”)

4、点击“新建项目”

5、定义项目名称

6、回到Harbor服务器,开始向Harbor上传镜像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@docker01 ~]# docker login -u admin -p Harbor12345 192.168.171.151:80            # 命令行登录到harbor
Login Succeeded
#执行上调命令后出现的警告只是,警告你建议更改初始密码
[root@docker01 ~]# docker tag centos:7 192.168.171.151:80/test/centos:7
#注意要上传至harbor仓库的命名规范,其中test是刚才在harbor创建的项目
[root@docker01 ~]# docker push 192.168.171.151:80/test/centos:7          #  上传至harbor

7、测试,第二台Docker的测试端配置如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@docker03 ~]# vim /usr/lib/systemd/system/docker.service 
ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.171.151:80
#指定Harbor服务器的IP地址及80端口
[root@docker03 ~]# systemctl daemon-reload 
[root@docker03 ~]# systemctl restart docker
[root@docker03 ~]# docker login -u admin -p Harbor12345 192.168.171.151:80              # 登录到私有仓库
Login Succeeded
[root@docker03 ~]# docker pull 192.168.171.151:80/test/centos:7
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/08/04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
企业级Docker私有仓库之Harbor部署(http)
部署环境 Centos7.3 x64 docker-ce-17.06.0 docker-compose-1.15.0 Python-2.7.5(系统默认) Docker及Docker-compose安装 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce
程序员同行者
2018/06/22
1K0
Docker Swarm群集配置实战——第一战
Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。
小手冰凉
2020/08/17
1.5K0
Harbor搭建私有Docker仓库
** 注意:** 不要直接安装 docker 服务,因为直接安装的 docker 服务可能与 harbor 版本对不上,导致安装失败。直接执行 harbor 安装,根据报错输出选择安装对应的 docker 服务。 ** 注意:** 需要关闭 selinux
jwangkun
2021/12/23
1K0
Harbor搭建私有Docker仓库
k8s资源对象的升级、回滚、扩容、缩容
命令的方式创建资源,理解命令运行之后的动作,通过查看资源的方式,总结Pod名称的由来
小手冰凉
2020/08/27
7040
2021年Docker最新系列之私有仓库构建1
在默认情况下,docker pull命令是docker官网仓库拉取镜像。在实际工作中会存在一些问题,比如内网环境根本拉不了镜像;其次,我们自己制作的镜像也不会直接上传到docker的官方仓库。所以,我们需要配置一个存放镜像的私有仓库。
用户8639654
2021/08/30
2050
搭建Harbor私有仓库【docker】
备注:各主机端关闭防火墙和selinux(方法:①systemctl stop firewalld ②setenforce 0)
Xiongan-桃子
2023/06/06
2920
搭建Harbor私有仓库【docker】
『中级篇』docker之CI/CD持续集成-项目生成镜像(76)
解决方法:在”/etc/docker/“目录下,创建”daemon.json“文件。在文件中写入
IT架构圈
2018/10/12
1.3K0
玩转Docker仓库-Docker Registry及Harbor
Docker Hub是Docker官方提供的公共仓库,需要我们注册一个Docker账号进行使用,注册地址:
行百里er
2021/01/04
1.1K0
玩转Docker仓库-Docker Registry及Harbor
Harbor镜像仓库远程同步
Harbor镜像仓库远程同步
Java架构师必看
2021/06/09
1.8K0
Harbor镜像仓库远程同步
012.Docker私有仓库多Harbor同步部署
harbor官方默认提供主从复制的方案来解决镜像同步问题,通过复制的方式,我们可以实时将测试环境harbor仓库的镜像同步到生产环境harbor,类似于如下流程:
木二
2019/07/26
2.6K0
Harbor -- 搭建Docker私有仓库
Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。
菲宇
2019/06/12
6.4K0
Harbor -- 搭建Docker私有仓库
『中级篇』docker之CI/CD持续集成-项目生成镜像(76)
PS:实际上这个例子,就是特定版本的docker image的产生。一个版本的发布代表我们这个软件的稳定的版本的问世,接下来就可以进行对稳定版本的部署,我们对稳定版本的部署,稳定版本的部署具体是docker swarm还是k8s,最重要的是我们已经有了一个docker image,我们可以通过手动,或者自动的升级。update docker image 实现服务的不中断。 总体言之这几次的流程是:开发代码提交到分支后,分支下进行校验pipline,没有问题,进行deploy的,在deploy测试没有问题,打包tag,形成稳定的dockerimage版本。
IT架构圈
2019/07/08
6610
011.Docker仓库管理
docker 仓库,即 registry,实现了镜像的管理、分发,同时还包括用户的认证。docker registry 仓库是一个无状态的、高可靠的服务器应用程序,用来存储docker镜像。docker.io 为 docker 官方的仓库,默认所有的pull均是从官方仓库拉取镜像。
木二
2019/07/26
6402
Docker 入门,万字详解!
Linux 容器是与系统其他部分隔离开的一系列进程,从另一个镜像运行,并由该镜像提供支持进程所需的全部文件。
杰哥的IT之旅
2021/04/20
4830
基于 Distribution / Harbor 部署 Docker 私有镜像仓库
Docker 在 2015 年推出了 Distribution 项目,即 Docker Registry 2。相比于 Old Registry,Registry 2 使用 Go 实现,在安全性、性能方面均有大幅改进。Registry 设计了全新的 Rest API,并且在 Image 存储格式等方面不再兼容于 Old Registry。如果你要与Registry2 交互,你的 Docker 版本至少要是 Docker 1.6。
iMike
2019/06/02
2.9K0
这就是你日日夜夜想要的docker!!!---------Harbor私有仓库
是多个容器同时跑起来的服务 所以必须要装docker compose Harbor是VMware公司的开源级的企业级DockerRegistry(仓库)项目,项目地址为 https://github.com/vmware/harbor. Harbor的目标是帮助用户迅速搭建一个企业级的DockerRegistry服务。 Harbor以docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制(Role Based Access Control),AD/LDAP集成,以及审计日志(Auditlogging)等企业用户需求的功能,同时还原生支持中文。 Harbor的每个组件都是以Docker容器的形式构建的,使用docker-compose来对它进行部署。用于部署Harbor的docker-compose模板位于/usr/local/bin/harbor/docker-compose.yml(自定义)
不吃小白菜
2020/09/25
1.4K0
这就是你日日夜夜想要的docker!!!---------Harbor私有仓库
Harbor介绍与企业级私有Docker镜像仓库搭建
Harbor,是一个英文单词,意思是港湾,港湾是干什么的呢,就是停放货物的,而货物呢,是装在集装箱中的,说到集装箱,就不得不提到Docker容器,因为docker容器的技术正是借鉴了集装箱的原理。所以,Harbor正是一个用于存储Docker镜像的企业级Registry服务。
踏歌行
2020/10/15
2.4K0
Harbor介绍与企业级私有Docker镜像仓库搭建
Harbor 自建企业仓库
因为系统是 CentOS 7.3 ,内核啥的都已经是 3.10,所以不用担心内核升级的问题,一些操作啥的在 7.x 上操作也很方便。
老七Linux
2018/08/03
1.5K0
Harbor 自建企业仓库
Docker镜像私有仓库
在Docker中,当我们执行 docker pull xxx 的时候 ,它实际上是从 hub.docker.com 这个地址去查找,这就是 Docker 公司为我们提供的公共仓库。在工作中,我们不可能把企业项目 push 到公有仓库进行管理。所以为了更好的管理镜像,Docker 不仅提供了一个中央仓库,同时也允许我们搭建本地私有仓库。
星哥玩云
2022/09/15
3.3K0
docker-ce安装与搭建私有仓库 原
###docker-ce安装### 1、卸载老版本,较老版本的Docker被称为docker或docker-engine。如果这些已安装,请卸载它们以及关联的依赖关系。
拓荒者
2019/03/11
1.2K0
docker-ce安装与搭建私有仓库
                                                                            原
相关推荐
企业级Docker私有仓库之Harbor部署(http)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验