实战-使用harbor搭建Docker私有仓库-v1-5-0-20220624
实战:使用harbor搭建Docker私有仓库(v1.5.0)-2022.6.24
目录
[TOC]
实验环境
1台centos7.x虚机。dockerversion:20.10.6(附近版本都可以)harbor版本:v1.5.0-d59c257e
用途 | 主机名 | ip | 系统版本 | 备注 |
---|---|---|---|---|
作为harbor使用 | harbor | 172.29.9.10 | centos7.7 1908 | 使用高配版虚拟机; |
注意:安装 harbor,系统根分区的可用空间需要大于 6G,否则安装时会报空间不足。内存 2G 以上。 |
实验软件
2、安装docker脚本
#安装必要的一些系统工具yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#配置国内 docker 的 yum 源yum-config-manager--add-repohttps:yummakecache#安装 docker-ceyuminstalldocker-cedocker-ce-clicontainerd.io-y#启动并开机自启docker服务systemctlstartdocker&&systemctlenabledocker#查看docker版本dockerversiondockerinfo#配置docker镜像地址mkdir-p/etc/dockertee/etc/docker/daemon.json<<-'EOF'{"registry-mirrors":["https:}EOFsystemctldaemon-reloadsystemctlrestartdocker#开启网络转发功能echo"net.ipv4.ip_forward =1">>/etc/sysctl.confsysctl-pcat/proc/sys/net/ipv4/ip_forward
基础环境配置完成后,对上述配置进行验证,确保符合要求。
验证全部符合要求后,对虚机做一个init-success快照。
1、安装 docker-compose
方法2:离线安装(本次安装方式)
github 地址:https://github.com/docker/compose/releases/
下载二进制文件上传至 linux(课程资料已提供 docker-compose 二进制文件可直接上传)
[root@harbor ~]# rz
[root@harbor ~]# ll -h docker-compose-Linux-x86_64
-r-------- 1 root root 12M 7月 24 2020 docker-compose-Linux-x86_64
[root@harbor ~]# mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
[root@harbor ~]# chmod +x /usr/local/bin/docker-compose #添加执行权限
方法3:使用python 的pip安装docker-compose
- 安装epel源
[root@harbor ~]# yum install -y epel-release
- 安装并升级pip
[root@harbor ~]# yum install -y python-pip
[root@harbor ~]# pip install --upgrade pip
- 使用pip安装docker-compose
[root@harbor ~]# pip install -U -i https://pypi.tuna.tsinghua.edu.cn/simple docker-compose
2、安装 Harbor 私有仓库
1.下载 Harbor 安装文件
https://github.com/goharbor/harbor/releases
wget http://harbor.orientsoft.cn/harbor-v1.5.0/harbor-offline-installer-v1.5.0.tgz
注:此文件有 800M 左右大小,建议大家提前下载好后,上传到 linux 系统上。
[root@harbor ~]# rz
[root@harbor ~]# ll -h harbor-offline-installer-v1.5.0.tgz
-r-------- 1 root root 824M 2月 11 2019 harbor-offline-installer-v1.5.0.tgz
[root@harbor ~]# tar xf harbor-offline-installer-v1.5.0.tgz -C /opt/
2.配置 Harbor
[root@harbor ~]# vim /opt/harbor/harbor.cfg #查看配置文件中的基本信息
# 修改点1:hostname 设置访问地址,可以使用 ip、域名,不可以设置为 127.0.0.1 或 localhost
改: 7 hostname = reg.mydomain.com
为: 7 hostname = 172.29.9.10
# 修改点2:启动 Harbor 后,管理员 UI 登录的密码,默认是 Harbor12345,改为 123456
改:68 harbor_admin_password = Harbor12345
为:68 harbor_admin_password = 123456
# 修改点3:注释https相关信息
#https:
# https port for harbor, default is 443
# port: 443
# The path of cert and key files for nginx
# certificate: /your/certificate/path
# private_key: /your/private/key/path
修改完成后,保存退出。
问题来了:如果修改完其配置文件后,该如何生效呢?
个人感觉可以重启下harbor服务即可(docker-compose stop/start
)
3、启动Harbor
1.确认上述配置没有问题后,进行启动harbor
[root@harbor ~]# cd /opt/harbor/
[root@harbor harbor]# ./prepare #初始化安装环境
2.开始安装 harbor
[root@harbor harbor]# ./install.sh #执行./install.sh,Harbor 服务就会根据当期目录下的/opt/harbor/docker-compose.yml 开始下载依赖的镜像,检测并按照顺序依次启动各个服务。最终弹出以下画面,说明安装成功了。
#这里耐心等待一会儿就好!
3.查看 Harbor 依赖的镜像及启动服务如下
查看镜像:
[root@harbor harbor]#docker-compose ps #用这个命令查看启动的服务
Name Command State Ports
--------------------------------------------------------------------------------------------------------------------------------------
harbor-adminserver /harbor/start.sh Up (health: starting)
harbor-db /usr/local/bin/docker-entr ... Up (health: starting) 3306/tcp
harbor-jobservice /harbor/start.sh Up
harbor-log /bin/sh -c /usr/local/bin/ ... Up (healthy) 127.0.0.1:1514->10514/tcp
harbor-ui /harbor/start.sh Up (health: starting)
nginx nginx -g daemon off; Up (health: starting) 0.0.0.0:443->443/tcp,:::443->443/tcp,
0.0.0.0:4443->4443/tcp,:::4443->4443/tcp,
0.0.0.0:80->80/tcp,:::80->80/tcp
redis docker-entrypoint.sh redis ... Up 6379/tcp
registry /entrypoint.sh serve /etc/ ... Up (health: starting) 5000/tcp
4.配置开机自启
- 参考方法:
- 自己实际配置代码如下:
设置开机启动:
[root@harbor ~]#vim /etc/rc.local
/usr/local/bin/docker-compose -f /opt/harbor/docker-compose.yml up -d
设置权限:
[root@harbor ~]#chmod +x /etc/rc.local /etc/rc.d/rc.local
4、使用 harbor 管理镜像
登录 http://172.29.9.10/harbor/sign-in 用户:admin 密码:Harbor12345
5、新建一个仓库项目
我们新建一个名称为 xuegod-web 的项目,设置公开。
注意:当项目设为公开后,任何人都有此项目下镜像的读权限。命令行用户不需要“docker login”就可以拉取此项目下的镜像。
6、修改本地 docker 服务使用 http 协议和私有仓库通信
这个是在docker客户端进行配置的,而不是在harbor机器上配置。
#配置可信任(如果仓库是HTTPS访问不用配置)
#在 daemon.json 中添加以下参数
[root@harbor ~]# vim /etc/docker/daemon.json #创建此文件,并写入以下内容
{
"insecure-registries": ["172.29.9.10"]
}
#重启docker 服务
[root@harbor ~]# systemctl daemon-reload && systemctl restart docker
注:出现这问题的原因是:Docker 自从 1.3.X 之后 docker registry 交互默认使用的是 HTTPS,但是搭建私有镜像默认使用的是 HTTP 服务,所以需要加上这一行。 不然 docker 没有办法往私有仓库中上传镜像,并且docker也没办法从是私有仓库拉取镜像,即docker login 私有仓库地址是会报错的。
注意:如下json格式的写法
注意:如果harbor那里有端口号,这里也是要添加端口号的
7、重启harbor服务,登录harbor仓库
注意:这里是把harbor机器当docker主机来进行测试使用的;
之前重启 docker 服务时,把 harhor 服务也关了,所以需要再启动一下 harbor。
你可以使用 docker-compose 来启动或关闭 Harbor 服务。但必须在与 docker-compose.yml 相
同的目录中运行。 compose [kəmˈpəʊz] 组成
[root@harbor harbor]# docker-compose stop
[root@harbor harbor]# docker-compose start
- 登录私有仓库
[root@harbor harbor]# docker login 172.29.9.10
8、上传镜像到私有仓库中
1.查看当前本地镜像
2.admin 登录harbor
[root@harbor harbor]# docker login 172.29.9.10
3.给本地镜像打 tag
tag 的名称,可以在 web 界面这里查看到。
#举例
docker tag SOURCE_IMAGE[:TAG] 172.29.9.10/xuegod-web/IMAGE[:TAG]
docker push 172.29.9.10/xuegod-web/IMAGE[:TAG]
#实际打的tag
[root@harbor harbor]# docker tag vmware/redis-photon:v1.5.0 172.29.9.10/xuegod-web/vmware/redis-photon:v1.5.0
4.将打好tag的本地镜像push到仓库
[root@harbor harbor]# docker push 172.29.9.10/xuegod-web/vmware/redis-photon:v1.5.0
5.在 web 界面查看刚才上传到仓库中的镜像
9、从私有仓库 pull 镜像
1.首先删除本地镜像
[root@harbor harbor]# docker rmi 172.29.9.10/xuegod-web/vmware/redis-photon:v1.5.0
2.pull 私有仓库中的镜像并验证
[root@harbor harbor]# docker pull 172.29.9.10/xuegod-web/vmware/redis-photon:v1.5.0
拉取成功!
以上就是如何使用harbor搭建Docker私有仓库的全部过程了。
FAQ
harbor也可以存储helm chart的
docker-compose常用命令
docker-compose ps #查看all容器
docker-compose up -d == docker-compose start #启动all的容器
docker-compose down == docker-compose stop #关闭all的容器
⚠️ 知识补充:
1、如果以后修改了harbor.yml文件,那么先停止使用docker-compose down,再去修改harbor.yml文件,重新启动部署 ./install.sh
2、正常启动harbor启动:docker-compose up -d
3、未修改配置文件,重启Harbor命令:docker-compose start | stop | restart
你可以使用 docker-compose 来启动或关闭 Harbor 服务。但必须在与 docker-compose.yml 相同的目录中运行。即使之前把docker-compose二进制文件移动到PATH路径里了,但也需要在合适的地方执行这个命令才行;
📍 不同harbor软件包的方式有点区别
注意:不同harbor软件包的方式有点区别,但是大体上是差不多的;
- harbor-offline-installer-v1.5.0.tgz
这里配置的是harbor.cfg
文件。
- harbor-offline-installer-v1.10.10.tgz
📍 关于如何修改harmor密码,感觉很繁琐的样子。。。(修改了好几次都没成功。。。)
- 自己按网上这个修改了,但是没生效,很奇怪。。。
http://www.javashuo.com/article/p-mwfuezme-gm.html
📍 还有个问题,如何卸载harbor服务呢?
📍 还有个问题:这个harbor的版本号怎么奇奇怪怪的。。。
怎么最新的版本号是v1.10开头的呢,难道是1版本和2版本同时迭代的吗???。。。。
https://github.com/goharbor/harbor/tags
关于我
我的博客主旨:
- 排版美观,语言精炼;
- 文档即手册,步骤明细,拒绝埋坑,提供源码;
- 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!
🍀 微信二维码 x2675263825 (舍得), qq:2675263825。
🍀 微信公众号 《云原生架构师实战》
🍀 个人博客站点
http://47.97.48.237/ (即将上线域名:onedayxyy.cn)
🍀 语雀
https://www.yuque.com/xyy-onlyone
🍀 csdn https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421
🍀 知乎 https://www.zhihu.com/people/foryouone
最后
好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!