Harbor是用于存储和分发docker镜像的企业级Registry服务器;
1.准备前提条件
-
软硬件前置条件:官方连接
-
安装docker
- 方法一
12#下载安装docker,需要版本Version 17.06.0-ce+或更高curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun- 方法二
12345678#删除掉旧的docker$ yum remove docker docker-*$ yum install -y yum-utils device-mapper-persistent-data lvm2$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo$ yum-config-manager --enable docker-ce-edge$ yum install -y docker-ce-18.09.0-3.el7.x86_64$ systemctl start docker$ systemctl enable docker -
安装docker-compose,Version 1.18.0或更高
docker-compose官方文档地址:https://docs.docker.com/compose。 从 Github 上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/releases。 运行以下命令下载 Docker Compose 的当前稳定版本:
1 2 3 4 |
#yum install -y docker-compose #sudo apt install docker-compose $ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose #https://github.com/docker/compose/releases/download/1.25.0-rc4/docker-compose-Linux-x86_64 |
要安装其他版本的 Compose,请替换 1.24.1。将可执行权限应用于二进制文件:
1 |
$ sudo chmod +x /usr/local/bin/docker-compose |
创建软链:
1 |
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose |
测试是否安装成功:
注意: 对于 alpine,需要以下依赖包: py-pip,python-dev,libffi-dev,openssl-dev,gcc,libc-dev,和 make。
1 |
$ sudo docker-compose version |
2.下载配置harbor源码
1 2 3 4 5 6 7 |
wget https://github.com/goharbor/harbor/archive/v2.1.0-rc1.tar.gz tar -xvf v2.1.0-rc1.tar.gz mv harbor-2.1.0-rc1 harbor cd harbor/make cp harbor.yml.tmpl harbor.yml ##这里根据实际情况,编译harbor.yml vi harbor.yml |
3.配置harbor.yml文件
1 2 3 4 5 6 7 8 9 |
hostname: 192.168.110.100 http: port: 80 database: password: root123 harbor_admin_password: Harbor12345 #默认 log: location: /data/harbor/logs data_volume: /data/harbor/ |
- hostname:配置主机名称,不可以设置127.0.0.1,localhost这样的主机名,可以是IP或者域名
- ui_url_protocol:指定使用HTTP协议还是HTTPS协议
- Email settings:邮箱设置,option配置,只在首次启动生效,可以登陆UI后修改
- harbor_admin_password:设置管理员的初始密码,只在第一次登录时- 使用
- auth_mode:用户认证模式,默认是db_auth,也可以使用ldap_auth验证。
- db_password:使用db需要指定连接数据库的密码
- self_registration:是否允许自行注册用户,默认是on,新版本可以在图形界面中修改。
- max_job_workers:最大工作数,默认是10个
- customize_crt:是否为token生成证书,默认为on
- ssl_cert:nginx cert与key文件的路径, 只有采用https协议是才有意义
- ssl_cert:nginx cert与key文件的路径, 只有采用https协议是才有意义
- secretkey_path:The path of secretkey storage
- admiral_url:Admiral's url, comment this attribute, or set its value to NA when Harbor is standalone
- clair_db_password:未启用calir服务,但解压目录下的"./prepare"文件中要检查以下相关参数配置,不能注释,否则环境准备检查不能通过,报"ConfigParser.NoOptionError: No option u'clair_db_password' in section: u'configuration' "相关错误;或者在"./prepare"中注释相关检查与定义,但需要注意,文件中的关联太多,推荐修改"harbor.cfg"文件即可
- ldap_url:ladp相关设置,如未采用ldap认证,但解压目录下的"./prepare"文件中要检查以下相关参数配置,不能注释,否则环境准备检查不能通过,报"ConfigParser.NoOptionError: No option u'ldap_timeout' in section: u'configuration' "相关错误;或者在"./prepare"中注释相关检查与定义,但需要注意,文件中的关联太多,推荐修改"harbor.cfg"文件即可
- self_registration:默认开启自注册,off为关闭
- token_expiration:token有效时间,默认30minutes
- project_creation_restriction:创建项目权限控制,默认是"everyone"(所有人),可设置为"adminonly"(管理员)
- verify_remote_cert:与远程registry通信时是否采用验证ssl
4.执行安装harbor
1 2 |
#设置完harbor.yml可以安装 ./install.sh |
- 问题:ERROR: manifest for goharbor/harbor-log:v2.2.0-build.3927 not found。
如果遇到问题,ERROR: manifest for goharbor/harbor not found。是因为最新harbor版本的问题,需要修改install.sh文件。在87行进行如下修改,添加替换版本号。因为prepare脚本会重新生成docker-composer.yml文件,在其步骤之后之间替换最新版本harbor版本号。harbor最新版本号可以通过官方网站进行查询tag的版本。
1 2 |
./prepare $prepare_para sed -i "s/v2.2.0-build.3927/v2.0.2/g" docker-compose.yml |
5.测试harbor的Web界面
配置Nginx,然后登录IP:80 地址。安装好后是默认用户名和密码如下: user:admin password:Harbor12345
6.提交测试镜像
- http登录
如果采用http登录,需要修改docker配置。在/etc/sysconfig/ 没有docker这个配置文件的情况下创建文件添加:
1 2 3 4 5 6 7 8 |
#在daemon.json中添加以下参数 [root@localhost harbor]# cat /etc/docker/daemon.json #harbor的docker login 失败为例 { "insecure-registries": [ "harbor.cfg中name的域名或者ip" ] } |
- 镜像拉取和提交
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ docker pull alpine #拉取测试用容器 $ docker run -itd --name docker_name alpine ... $ docker stop #修改容器后停止 $ docker commit -m "message" -a "author" docker_name repository_author/repository_name:V2 #提交容器,设置V2版本号 $ docker tag repository_author/repository_name:V2 192.168.110.100/library/repo_name:V3 #可以根据情况修改提交tag和名称专门用于上传提交镜像,其中192.168.110.100为本地ip或域名;library为harbor中已创建项目名称,如果没有则无法上传成功; $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE 192.168.110.100/library/repo_name V3 deb7360bb5c4 36 minutes ago 5.57MB repository_author/repository_name V2 deb7360bb5c4 36 minutes ago 5.57MB $ docker login 192.168.110.100 #推送镜像到harbor $ docker push 192.168.110.100/library/repo_name:V3 |
-
本文最新状态可查看源站链接:Harbor安装和简单使用
-
参考文档:
微信赞赏
支付宝赞赏