Harbor (港口,港湾)是一个用于存储和分发Docker镜像的企业级Registry服务器。我们可以使用dockerhub仓库或者阿里云docker仓库等第三方仓库管理我们的docker镜像。对于企业来说,条件允许,可以搭建自己的docker镜像管理仓库。Harbor具有很多优势,能够提供分层传输机制,优化网络传输 Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。提供WEB界面,优化用户体验只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像。支持水平扩展集群,当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解。良好的安全机制 企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性。本文记录了harbor的详细安装过程(基于centos)
[root@center ~]# yum update
[root@center ~]# sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@center ~]# sudo yum install -y yum-utils device-mapper-persistent-data lvm2
[root@center ~]# sudo yum install docker-ce docker-ce-cli containerd.io
[root@center ~]# sudo systemctl start docker
[root@center ~]# docker version
[root@center ~]# sudo systemctl enable docker
# 安装epel源
[root@center ~]# yum install -y epel-release
# 安装docker-compose
[root@center ~]# yum install -y docker-compose
# 验证
[root@center ~]# docker-compose --version
[root@center ~]# tar -zxvf harbor-offline-installer-v2.8.0.tgz -C /opt/
[root@center ~]# cd /opt/harbor/
[root@center harbor]# openssl genrsa -out ca.key 4096
# 注意填写实际ip
[root@center harbor]# openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.145.103" \
-key ca.key \
-out ca.crt
# 注意填写实际ip
[root@center harbor]# openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.145.103" \
-key ca.key \
-out ca.crt
[root@center harbor]# mkdir /data/cert/
[root@center harbor]# mv ca* /data/cert/
[root@center harbor]# cp harbor.yml.tmpl harbor.yml
[root@center harbor]# vim harbor.yml
主要修改以下内容
[root@center harbor]# ./prepare
[root@center harbor]# ./install.sh
等待安装完成,访问自己的ip或者域名
如遇到x509问题可通过配置insecure-registries来解决,linux可将harbor服务器ip添加至/etc/docker/daemon.json文件insecure-registries中,如下:
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://kn0t2bca.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.145.103"]
}
之后重启docker
[root@node1 ~]# sudo systemctl daemon-reload
[root@node1 ~]# sudo systemctl restart docker.service
# 验证登录
[root@node1 ~]# docker login 192.168.145.103
Username: admin
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
win直接在docker desktop中修改即可,参考下图
卸载harbor
[root@center harbor]# sudo docker-compose down -v
[root@center harbor]# rm -r /data/database
[root@center harbor]# rm -r /data/registry
::: primary 标题 内容 :::