安装docker
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli -y
systemctl start docker
systemctl enable docker
安装docker-compose
下载地址
https://github.com/docker/compose/releases/
wget https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-x86_64 -O /usr/local/bin/docker-compose
赋予文件执行权限
chmod +x /usr/local/bin/docker-compose
查看docker-compose版本
安装harbor
本次安装为在线安装,离线包下载链接为https://github.com/goharbor/harbor/releases/download/v1.10.8/harbor-offline-installer-v1.10.8.tgz
下载harbor
wget https://github.com/goharbor/harbor/releases/download/v1.10.8/harbor-online-installer-v1.10.8.tgz
解压缩
tar xf harbor-online-installer-v1.10.8.tgz
安装
cd harbor
./install
图中标记的是必须要改的,可以写自己的主机名、ip地址,也可以写域名(必须是公网认可的),一个是是否支持https协议,看个人情况,本次是不支持https协议的
如图上显示的就是已经安装好了harbor,并且已经自己启动了
docker-compose up -d
查看服务镜像
登录网站访问
我安装的是http的所以访问的是http的地址,若是https看后面
http://192.168.17.205
用户名:admin
密码:Harbor12345 ##此密码为harbor.yml文件中写的,若想修改请修改配置文件
登录进来的样子
配置复制高可用
http协议的高可用配置
两台机器一台192.168.17.203,一台192.168.17.205
192.168.17.205机器的harbor端口为默认的80端口,192.168.17.203机器的harbor端口为88
仓库管理新建目标
复制管理新建规则,建议触发模式以下全部勾选!!!
当有镜像上传上来时,会自动push到另一台机器上
另一台也同理
仓库管理添加目标,复制管理添加规则如下图所示
https的高可用配置
两台机器一台192.168.17.203,一台192.168.17.205
192.168.17.205、192.168.17.203机器支持https协议的harbor端口为443
harbor配置文件如下:
登录harbor网站地址
https://192.168.17.205
用户名:admin
密码:Harbor12345 ##此密码为harbor.yml文件中写的,若想修改请修改配置文件
接下来就直接放图,不解释了
配置以上之后可以测试是否上传删除都同步,以上配置我已经测试过,支持删除上传都同步,保障两个仓库的镜像同步
Harbor的基本操作与使用方法
配置http镜像仓库可信任
cat /etc/docker/daemon.json
{
"insecure-registries": ["192.168.17.205"]
}
systemctl daemon-reload
systemctl restart docker
上传镜像
docker login 192.168.17.205:80
Username:
docker tag nginx:latest 192.168.17.205:/basic/nginx:latest
docker push 192.168.17.205:80/basic/nginx:latest
查看镜像
下载仓库中的镜像(在登录状态)
退出登录镜像仓库
当想要修改配置文件时,首先停止harbor相关的容器镜像
docker-compose down -v
重载生效
./prepare
开启所有容器
docker-compose up -d
遇到的错误以及解决方法
1、如下图报错,因为docker镜像仓库默认使用https协议,要执行
cat /etc/docker/daemon.json
{
"insecure-registries": ["192.168.17.205:80"]
}
systemctl daemon-reload
systemctl restart docker
2、出现以下错误重点看一下自己的harbor.xml中hostname写的是否对(域名要买的dns服务能解析到的,要么就直接IP地址)
3、push镜像时报denied: requested access to the resource is denied的错误,可能是没有登录harbor,docker login 192.168.17.203:88输入账号密码就好了
4、在新建仓库时,目标URL填写的IP+端口,测试连接失败,查看harbor.xml文件是否开了ssl认证如果没有查看hostname两台机器能互相访问么