Harbor1.9 部署并配置https

网友投稿 248 2022-11-01

Harbor1.9 部署并配置https

Harbor1.9 部署并配置协议的话,docker 客户端需要修改配置,如果 docker 客户端多的话配置起来就很麻烦。

版本信息

OS:​​CentOS Linux 7.6 Release​​Docker:​​18.09.6​​Docker-compose:​​1.24.1​​Harbor:​​harbor-offline-installer-v1.9.0​​IP:​​172.0.0.11​​

1. 安装 docker

1.1 配置 repository:

yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo 安装最新版本 docker-ce

yum install -y docker-ce

1.3 配置docker加速

参考docker.hub:​​-sSL | sh -s restart docker.service

1.4 启动docker:

systemctl start dockersystemctl enable docker

2. 安装 docker-compose

2.1 下载二进制文件

curl -L "-s)-$(uname -m)" -o /usr/local/bin/docker-compose

如果需要安装其他版本的话,请修改上面命令中的版本号。

2.2 赋予二进制文件可执行权限

chmod +x /usr/local/bin/docker-composeln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

2.3 根据自己的情况决定是否安装命令补全功能

yum install -y bash-completion curl -L -o /etc/bash_completion.d/docker-compose

2.4 测试是否安装成功

docker-compose --version

3. harbor 开启 1.8 或者 1.9 版本,切记配置文件中 需要顶格,证书和 port 需要缩进相同单位,不然会报错。

3.1 创建 ca 证书

mkdir -p /data/certcd /data/cert

3.2 生成 CA 的 key

cd /data/certopenssl genrsa -out ca.key 4096

3.3 生成 CA 的 crt

cd /data/certopenssl req -x509 -new -nodes -sha512 -days 3650 \ -subj "/C=CN/ST=Beijing/L=Beijing/O=chinatelecom/OU=ecloudcaas/CN=172.0.0.11" \ -key ca.key \ -out ca.crt

3.4 生成自己域名的 key

cd /data/certopenssl genrsa -out 172.0.0.11.key 4096

3.5 生成自己域名的 csr

cd /data/certopenssl req -sha512 -new \ -subj "/C=CN/ST=Beijing/L=Beijing/O=chinatelecom/OU=ecloudcaas/CN=172.0.0.11" \ -key 172.0.0.11.key \ -out 172.0.0.11.csr

3.6 生成一个 openssl 命令需要的外部配置文件

主要是subjectAltName,这里写的IP.1=yourip还可以写DNS.1=yourdomainnamecd /data/certcat > v3.ext <<-EOFauthorityKeyIdentifier=keyid,issuerbasicConstraints=CA:FALSEkeyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEnciphermentextendedKeyUsage = serverAuth subjectAltName = @alt_names[alt_names]IP=172.0.0.11EOF

3.7 通过 ext 和 csr 生成 crt

cd /data/certopenssl x509 -req -sha512 -days 3650 \ -extfile v3.ext \ -CA ca.crt -CAkey ca.key -CAcreateserial \ -in 172.0.0.11.csr \ -out 172.0.0.11.crt

3.8 将服务端的 crt 转换成客户端用的 cert

cd /data/certopenssl x509 -inform PEM -in 172.0.0.11.crt -out 172.0.0.11.cert

3.9 将带域名的 cert,key 和 ca.crt 拷贝到 docker client 所在主机的 /etc/docker/certs.d/yourdomain/ 目录下

mkdir -p /etc/docker/cert/172.0.0.11cp /data/cert/172.0.0.11.cert /etc/docker/cert/172.0.0.11/cp /data/cert/172.0.0.11.key /etc/docker/cert/172.0.0.11/cp /data/cert/ca.crt /etc/docker/cert/172.0.0.11/

3.10 创建 /etc/docker/daemon

cat > /etc/docker/daemon.json << EOF{ "insecure-registries":["}EOF

3.11 重启 docker

systemctl daemon-reloadsystemctl restart docker

4. 安装 Harbor

4.1 下载 harbor 离线包

mkdir -p /home/harbor/wget -P /home/harbor/ /home/harbor/tar xf harbor-offline-installer-v1.9.0.tgzcd /home/harbor/harborcp harbor.yml harbor.yml.bak

4.2 修改配置文件

其他地方不修改,只改以下几处:

cd /home/harbor/harbor/[root@harbor harbor]# egrep -v "^#|^$" harbor.yml|grep -v "#" port: 443 certificate: /home/harbor/cert/172.0.0.11.crt private_key: /home/harbor/cert/172.0.0.11.key

4.3 更新参数

cd /home/harbor/harbor/./prepare

4.4 安装

cd /home/harbor/harbor/ ./install

4.5 查看

​​Harbor​​​ 的日常运维管理是通过​​docker-compose​​​ 来完成的,​​Harbor​​​ 本身有多个服务进程,都放在​​docker​​​ 容器之中运行,可以通过​​docker ps​​​ 或者​​docker-compose​​ 来查看:

cd /home/harbor/harbor/[root@harbor harbor]# docker-compose ps Name Command State Ports ----------------------------------------------------------------------------------------------------------------------------------------------harbor-adminserver /harbor/start.sh Restarting harbor-core /harbor/start.sh Up (health: starting) harbor-db /entrypoint.sh postgres Up (healthy) 5432/tcp harbor-jobservice /harbor/start.sh Up harbor-log /bin/sh -c /usr/local/bin/ ... Up (healthy) 127.0.0.1:1514->10514/tcp harbor-portal nginx -g daemon off; Up (healthy) 80/tcp nginx nginx -g daemon off; Up (healthy) 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:80->80/tcpredis docker-entrypoint.sh redis ... Up 6379/tcp registry /entrypoint.sh /etc/regist ... Up (healthy) 5000/tcp registryctl /harbor/start.sh Up (healthy) [root@harbor harbor]#

5. 网页登录和创建项目

6. 镜像的推送

6.1 下载官方的 centos 镜像

docker pull centos:7.4.1708

6.2 修改 TAG

docker tag centos:7.4.1708 172.0.0.11/os/centos:7.4.1708docker images | grep centos172.0.0.11/os/centos 7.4.1708 3afd47092a0e 2 months ago 197MBcentos 7.4.1708 3afd47092a0e 2 months ago 197MB

6.3 命令行登录 harbor

cat > /etc/docker/daemon.json << EOF{ "insecure-registries":["}EOFsystemctl daemon-reloadsystemctl restart docker[root@harbor harbor]# docker login 172.0.0.11Username: adminPassword: Harbor12345WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. SeeSucceeded

6.4 推送镜像到harbor(需要login)

docker push 172.0.0.11/os/centos:7.4.1708

7. 镜像的拉取

假设是一台没有登录此 harbor 的 docker 客户端

7.1 创建 /etc/docker/daemon.json 文件

{ "registry-mirrors": [""" "insecure-registries" : [" "max-concurrent-downloads": 10, "log-driver": "json-file", "log-level": "warn", "log-opts": { "max-size": "10m", "max-file": "3" }}

7.2 重启 Docker 生效

systemctl daemon-reloadsystemctl restart docker

7.3 拉取 harbor 中的镜像

docker login 172.0.0.11docker pull 172.0.0.11/os/centos:7.4.1708

作者:HaydenGuo

每一个前十年都想不到后十年我会演变成何等模样,可知人生无常,没有什么规律,没有什么必然。

只要我还对新鲜的知识、品格的改进、情感的扩张、有胃口,这日子就是值得度过的。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:你知道怎么用Spring的三级缓存解决循环依赖吗
下一篇:简要分析Thread的通用GPIO设备驱动
相关文章

 发表评论

暂时没有评论,来抢沙发吧~