05-Harbor - 企业级 Docker 私有仓库

05-Harbor - 企业级 Docker 私有仓库

安装底层需求:

Python应该是2.7或更高版本
Docker引擎应为1.10或更高版本
Docker Compose需要为1.6.0或更高版本

docker-compose 安装:

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

安装:Harbor 官方地址

https://github.com/vmware/harbor/releases

05-Harbor - 企业级 Docker 私有仓库

创建 https 证书以及配置相关目录权限

申请 TLS 自签证书的过程包括以下几个步骤:

1、生成私钥:使用工具(如 OpenSSL)生成一个私钥。私钥是保密的,用于加密通信。

创建一个2048位的加密私钥:
openssl genrsa -des3 -out server.key 2048
输入两次私钥密码即可

2、生成证书签署请求 (CSR):使用私钥生成 CSR。此请求包含公钥和一些身份信息(如组织名称、域名等,需要填写的相关信息展示如下图)。

05-Harbor - 企业级 Docker 私有仓库

创建证书请求认证证书:
openssl req -new -key server.key -out server.csr

05-Harbor - 企业级 Docker 私有仓库

备份一下私钥:
cp server.key server.key.org

因为nginx开启需要输入密钥,所以我们需要退密钥,将带有密码保护的私钥(server.key.org)转换为无密码保护的私钥(server.key)。通过执行这条命令后,你将得到一个没有密码保护的 server.key 文件,这样在启动 Nginx 时就不需要输入密钥密码了,使得自动化部署或重启过程更加顺利。

openssl rsa -in server.key.org -out server.key

05-Harbor - 企业级 Docker 私有仓库

3、自签署证书:使用生成的 CSR 和私钥自签署证书。这一步可以通过 OpenSSL 完成。

创建自签证书:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

05-Harbor - 企业级 Docker 私有仓库

4、配置服务器:将自签名证书和私钥安装到服务器上,配置相应的服务

将证书文件创建到/data目录下:

mkdir -p /data/cert
mv server.* /data/cert/
chmod -R 777 /data/cert

Harbor安装:

05-Harbor - 企业级 Docker 私有仓库

tar xvf harbor-offline-installer-v2.3.5.tgz

mv harbor /usr/local/

cd /usr/local/harbor/ && ls

cp harbor.yml.tmpl harbor.yml

vim harbor.yml

05-Harbor - 企业级 Docker 私有仓库

输入私有仓库镜像域名(和证书申请一致),并指定证书位置

./install.sh

05-Harbor - 企业级 Docker 私有仓库

docker ps -a 

配置和 hosts,访问测试:https://hub.ljh.com/

05-Harbor - 企业级 Docker 私有仓库

登陆时的用户和密码:
admin / Harbor12345

镜像进行上传测试

可以看到一个library公开仓库

05-Harbor - 企业级 Docker 私有仓库

创建两个用户(系统管理员、用户1)

05-Harbor - 企业级 Docker 私有仓库
05-Harbor - 企业级 Docker 私有仓库
05-Harbor - 企业级 Docker 私有仓库

退出admin,登陆系统管理员用户,可以看到这个公有仓库:

05-Harbor - 企业级 Docker 私有仓库
05-Harbor - 企业级 Docker 私有仓库

使用系统管理员用户创建一个私有仓库和一个公开仓库

05-Harbor - 企业级 Docker 私有仓库
05-Harbor - 企业级 Docker 私有仓库

我这里的镜像推送命令:

docker tag SOURCE_IMAGE[:TAG] hub.ljh.com/public_library/REPOSITORY[:TAG]
docker push hub.ljh.com/public_library/REPOSITORY[:TAG]

退出重新登陆用户1

05-Harbor - 企业级 Docker 私有仓库

可以看到public_library

使用一台服务器指定镜像仓库地址(真正去供应商购买的话不需要这一段),推送项目:

vim /etc/docker/daemon.json
{
"insecure-registries": ["hub.yunjisuan.com"]
}
05-Harbor - 企业级 Docker 私有仓库

systemctl daemon-reload
systemctl restart docker

修改推送服务器(10)的hosts(我的私有镜像仓库地址为:192.168.1.11)

vim /etc/hosts

添加到最后一行:192.168.1.11 hub.ljh.com

推送一个ubuntu的镜像到公开仓库:

如果是私有镜像需要登陆且有权限

docker login hub.ljh.com

推送镜像命令:

docker tag SOURCE_IMAGE[:TAG] hub.ljh.com/public_library/REPOSITORY[:TAG]
docker push hub.ljh.com/public_library/REPOSITORY[:TAG]

例如将本地pull的centos镜像推上去:

docker pull centos
docker tag centos:latest hub.ljh.com/public_library/myhub-centos:v1.0
docker push hub.ljh.com/public_library/myhub-centos:v1.0

登陆系统管理员查看:

05-Harbor - 企业级 Docker 私有仓库

推送一个镜像到私有仓库:

系统管理员账户将用户1加入到维护人员

05-Harbor - 企业级 Docker 私有仓库

此时登陆用户1,可以推送了

先登陆用户1:

docker login hub.ljh.com
docker tag centos:latest hub.ljh.com/private_library/myhub-centos:v1.1
docker push hub.ljh.com/private_library/myhub-centos:v1.1
05-Harbor - 企业级 Docker 私有仓库
05-Harbor - 企业级 Docker 私有仓库

拉取命令:
docker pull hub.ljh.com/private_library/myhub-centos:v1.1

发布者:LJH,转发请注明出处:https://www.ljh.cool/4978.html

(2)
上一篇 2022年6月4日 下午5:23
下一篇 2022年7月28日 下午7:48

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注