Harbor(港口,港湾)是一个用于存储和分发Docker镜像的企业级Registry服务器
Harbor 可帮助用户迅速搭建企业级的 Registry 服务, 它提供了管理图形界面, 基于角色的访问控制 ( Role Based Access Control), 镜像远程复制 (同步), AD/LDAP 集成, 以及审计日志等企业用户需求的功能, 同时还原生支持中文, 深受中国用户的喜爱;
Harbor相比于Registry有以下优势
是 VMware 公司开源了企业级 Registry 项目, 其的目标是帮助用户迅速搭建一个企业级的 Docker registry 服务。
由于 Harbor 是基于 Docker Registry V2 版本,所以 docker 版本必须 >=1.10.0 docker-compose >=1.6.0
安装docker
# 安装一些必要的系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 bridge-utils
# 添加软件源信息
# 阿里云源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
mkdir /etc/docker
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://plqjafsr.mirror.aliyuncs.com"]
}
systemctl start docker && systemctl enable docker
systemctl daemon-reload
curl -L https://dn-dao-github-mirror.daocloud.io/docker/compose/releases/download/1.3.1/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose
# 启动docker-compose
chmod +x /usr/local/bin/docker-compose
wget https://github.com/goharbor/harbor/releases/download/v2.3.2/harbor-offline-installer-v2.3.2.tgz
# 对二进制文件应用可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
# 测试是否安装成功
docker-compose --version
# 按照上面给的docker harbor地址,下载离线安装包
tar xf harbor-offline-installer-v2.2.3.tgz -C /usr/local/
cd /usr/local/harbor/
cp harbor.yml.tmpl harbor.yml
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt
openssl req -newkey rsa:4096 -nodes -sha256 -keyout youmen.com.key -out youmen.com.csr
openssl x509 -req -days 365 -in youmen.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out youmen.com.crt
cp youmen.com.crt /data/cert/
cp youmen.com.key /data/cert/
./prepare
./install.sh
docker-compose down -v
docker-compose up -d
为了体现出效果,建议使用非harbor的另一台机器
# 服务端生成client.key
openssl genrsa -out client.key 4096
openssl req -new -x509 -text -key client.key -out client.cert
# 客户端修改配置文件
[root@ten2 docker]# cat /etc/docker/daemon.json
{
"insecure-registries": ["https://youmen.com"]
}
[root@ten2 docker]# ls /etc/docker/certs.d/
ca.crt client.cert client.key
[root@ten2 docker]# ls /etc/pki/ca-trust/source/anchors/
ca.crt client.cert client.key
systemctl daemon-reload
systemctl restart docker
docker tag nginx:latest youmen.com/library/nginx:latest
docker push youmen.com/library/nginx:latest
[root@ten2 docker]# docker login -u admin -p 12345a youmen.com
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
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
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。