Core services(Admin Server)是Harbor的核心功能,主要提供以下服务:
Proxy(Nginx)
通过一个前置的反向代理统一接收浏览器、Docker客户端的请求,并将请求转发给后端不同的服务
Registry(Docker官方镜像仓库)
负责储存Docker镜像,并处理docker push/pull命令
Database
为core services提供数据库服务
Log collector
负责收集其他组件的 log,供日后进行分析
服务器名称 | 服务 |
---|---|
服务器:192.168.109.66 | docker 20.10.5、docker-compose、harbor-offline-v1.2.2 |
服务器:192.168.109.77 | docker 20.10.5 |
服务器:192.168.109.66
把harbor-offline-installer-v1.2.2.tgz压缩包和docker-compose包拖到Xshell里
//查看 Docker-Compose 版本判断安装是否成功
cp docker-compose /usr/local/bin/
chmod +x /usr/local/bin/docker-compose
docker-compose -v
Harbor 被部署为多个 Docker 容器,因此可以部署在任何支持 Docker 的 Linux 发行版 上。
服务端主机需要安装 Python、Docker 和 Docker Compose。
前面拖入了harbor-offline-installer-v1.2.2.tgz包
wget http:// harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz
//有包直接解压
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
vim /usr/local/harbor/harbor.cfg
//5 hostname = 192.168.109.66
hostname:用于访问用户界面和 register 服务。它应该是目标机器的 IP 地址或完全限 定的域名(FQDN)
例如 192.168.109.66 或。不要使用 localhost 或 127.0.0.1 为主机名。
sh /usr/local/harbor/install.sh
//查看镜像
docker images
//查看容器
docker ps -a
cd /usr/local/harbor/
docker-compose ps
如果一切都正常,应该可以打开浏览器访问 http://192.168.109.66 的管理页面,默认 的管理员用户名和密码是 admin/Harbor12345。
此时可使用 Docker 命令在本地通过 127.0.0.1 来登录和推送镜像。默认情况下,
Register 服务器在端口 80 上侦听。
//登录
docker login -u admin -p Harbor12345 http://127.0.0.1
//下载镜像进行测试
docker pull cirros
//镜像打标签
docker tag cirros 127.0.0.1/myproject/cirros:v1
//上传镜像到Harbor
docker push 127.0.0.1/myproject/cirros:v1
以上操作都是在 Harbor 服务器本地操作。如果其他客户端上传镜像到 Harbor,就会报
如下错误。出现这问题的原因 Docker Registry 交互默认使用的是 HTTPS,但是搭建私有镜
像默认使用的是 HTTP 服务,所以与私有镜像交互时出现以下错误。
服务器:192.168.109.77
解决:
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.109.66 --containerd=/run/containerd/containerd.sock
systemctl daemon-reload
systemctl restart docker
docker login -u admin -p Harbor12345 http://192.168.109.66
docker pull cirros
docker images
docker tag cirros 192.168.109.66/myproject/cirros:v2
docker push 192.168.109.66/myproject/cirros:v2
服务器:192.168.109.66
可以使用 docker-compose 来管理 Harbor。一些有用的命令如下所示,必须在与
docker-compose.yml 相同的目录中运行。
docker-compose down -v
vim harbor.cfg
./prepare
docker-compose up -d
报错的情况:
docker-compose up -d
Creating network "harbor_harbor" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-25094fc09b3c -j RETURN: iptables: No chain/target/match by that name.
(exit status 1))
//解决:关闭防火墙后,docker需要重启
systemctl restart docker
docker-compose up -d
-
服务器:192.168.109.77
测试创建的新用户能否使用
[root@localhost ~]#docker logout 192.168.109.66
Removing login credentials for 192.168.109.66
--------------------------------------------------
[root@localhost ~]#docker login 192.168.109.66
Username: zhangsan
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
-------------------------------------------------------
[root@localhost ~]#docker pull 192.168.109.66/myproject/cirros:v1
v1: Pulling from myproject/cirros
Digest: sha256:c7d58d6d463247a2540b8c10ff012c34fd443426462e891b13119a9c66dfd28a
Status: Downloaded newer image for 192.168.109.66/myproject/cirros:v1
192.168.109.66/myproject/cirros:v1
-------------------------------------------------------
[root@localhost ~]#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.109.66/myproject/cirros v1 3c82e4d066cf 12 months ago 12.6MB
192.168.109.66/myproject/cirros v2 3c82e4d066cf 12 months ago 12.6MB
cirros latest 3c82e4d066cf 12 months ago 12.6MB