Skip to content

实战-使用harbor搭建Docker私有仓库-v1-5-0-20220624

实战:使用harbor搭建Docker私有仓库(v1.5.0)-2022.6.24

目录

[TOC]

实验环境

bash
1台centos7.x虚机。dockerversion:20.10.6(附近版本都可以)harbor版本:v1.5.0-d59c257e
用途主机名ip系统版本备注
作为harbor使用harbor172.29.9.10centos7.7 1908使用高配版虚拟机;
注意:安装 harbor,系统根分区的可用空间需要大于 6G,否则安装时会报空间不足。内存 2G 以上。

实验软件

链接:https:systemctlstopfirewalld&&systemctldisablefirewalld&&systemctlstopNetworkManager&&systemctldisableNetworkManagersetenforce0sed-is/SELINUX=enforcing/SELINUX=disabled//etc/selinux/config(2)配置网络yum源:cd/etc/yum.repos.d/mkdirbackup-`date +%F`mv*!$wget-O/etc/yum.repos.d/CentOS-Base.repohttp:yumcleanallyummakecacheyuminstall-ynet-toolsyuminstall-yvimyuminstall-ywgetyuminstall-ylrzsz(3)配置主机名(对相应的机器配置主机名)hostnamectl--staticset-hostnameharborexecbash

2、安装docker脚本

基础环境配置完成后,对上述配置进行验证,确保符合要求。

验证全部符合要求后,对虚机做一个init-success快照。

1、安装 docker-compose

参考文档:https:https:-s`-`uname-m` > /usr/local/bin/docker-compose #添加执行权限 chmod +x /usr/local/bin/docker-compose

方法2:离线安装(本次安装方式)

github 地址:https://github.com/docker/compose/releases/

下载二进制文件上传至 linux(课程资料已提供 docker-compose 二进制文件可直接上传)

bash
[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源
bash
[root@harbor ~]# yum install -y epel-release
  • 安装并升级pip
bash
[root@harbor ~]# yum install -y python-pip
[root@harbor ~]# pip install --upgrade pip
  • 使用pip安装docker-compose
bash
[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 系统上。

bash
[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

bash
[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

bash
[root@harbor ~]# cd /opt/harbor/
[root@harbor harbor]# ./prepare #初始化安装环境

2.开始安装 harbor

bash
[root@harbor harbor]# ./install.sh #执行./install.sh,Harbor 服务就会根据当期目录下的/opt/harbor/docker-compose.yml 开始下载依赖的镜像,检测并按照顺序依次启动各个服务。最终弹出以下画面,说明安装成功了。

#这里耐心等待一会儿就好!

3.查看 Harbor 依赖的镜像及启动服务如下

查看镜像:

bash
[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.配置开机自启

  • 参考方法:

  • 自己实际配置代码如下:

设置开机启动:

bash
[root@harbor ~]#vim /etc/rc.local
/usr/local/bin/docker-compose -f /opt/harbor/docker-compose.yml up -d

设置权限:

bash
[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机器上配置。

bash
#配置可信任(如果仓库是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] 组成

bash
[root@harbor harbor]# docker-compose stop
[root@harbor harbor]# docker-compose start
  • 登录私有仓库
bash
[root@harbor harbor]# docker login 172.29.9.10

8、上传镜像到私有仓库中

1.查看当前本地镜像

2.admin 登录harbor

bash
[root@harbor harbor]# docker login 172.29.9.10

3.给本地镜像打 tag

tag 的名称,可以在 web 界面这里查看到。

bash
#举例
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到仓库

bash
[root@harbor harbor]# docker push 172.29.9.10/xuegod-web/vmware/redis-photon:v1.5.0

5.在 web 界面查看刚才上传到仓库中的镜像

9、从私有仓库 pull 镜像

1.首先删除本地镜像

bash
[root@harbor harbor]# docker rmi 172.29.9.10/xuegod-web/vmware/redis-photon:v1.5.0

2.pull 私有仓库中的镜像并验证

bash
[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常用命令

bash
docker-compose ps #查看all容器

docker-compose up -d  == docker-compose start #启动all的容器
docker-compose down == docker-compose stop #关闭all的容器

⚠️ 知识补充:

bash
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。

image-20230107215114763

🍀 微信公众号 《云原生架构师实战》

image-20230107215126971

🍀 个人博客站点

http://47.97.48.237/ (即将上线域名:onedayxyy.cn)

image-20230917111843405

🍀 语雀

https://www.yuque.com/xyy-onlyone

image-20230912072007284

🍀 csdn https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎 https://www.zhihu.com/people/foryouone

image-20230107215203185

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

最近更新