Docker本地私有仓库搭建 | Docker加速源 | Harbor安装教程

Docker本地私有仓库搭建

  1. 下载registry镜像源
    docker pull registry
    

    在下载速度慢、下载失败时可以配置国内镜像加速器 阿里云镜像加速器
    按照对应官网教程进行操作
    在这里插入图片描述

  2. 运行registry
	docker run -d -p 5000:5000 --name registry registry
  • -d: 后台运行容器,并返回容器ID;
  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
    后台运行registry镜像,将容器端口5000映射到宿主机上的5000端口
  1. 测试本地镜像仓库
    vim /etc/hosts
    设置仓库名称(匹配ip地址)

    192.168.137.96 repo.local
    

    将以上配置加入文件当中

    docker tag registry repo.local:5000/registry
    

    上传镜像

    docker push repo.local:5000/registry
    

    在这里插入图片描述

  2. 设置镜像仓库开机自启动服务

    设置Docker开启自启动(运行完以下指令可重启服务器测试)

    systemctl enable docker
    

    设置容器Docker启动时自启动(运行完后可重启docker服务测试)

    docker update --restart=always registry
    

Harbor安装教程

Harbor安装前准备

  1. 下载Harbor
  2. 安装要求
    硬件要求(harbor v2.11.0):
资源最小推荐
CPU2 CPU4 CPU
内存4 GB8 GB
磁盘40 GB160 GB

软件要求(harbor v2.11.0):

软件版本描述
Docker20.10.10-ce+或以上有关安装说明,请参阅 Docker Engine 文档
Docker Composedocker-compose (v1.18.0+) 或 docker compose v2 (docker-compose-plugin)有关安装说明,请参阅 Docker Compose 文档
OpenSSL优先最先版本用于生成 Harbor 的证书和密钥

配置Harbor Https 访问

生成证书颁发机构证书

  1. 生成CA证书密钥

    openssl genrsa -out ca.key 4096
    
    • genrsa: 指定生成一个 RSA 私钥。RSA 是一种非对称加密算法,广泛用于数据加密和数字签名。

    • out ca.key: 指定输出文件名。生成的 RSA 私钥将被保存到 ca.key 文件中。

    • 4096: 指定 RSA 密钥的长度。这里选择了 4096 位,这是一个安全性较高的密钥长度。常见的 RSA 密钥长度有 2048 位和 4096 位,4096 位比 2048 位更安全,但也更慢。

  2. 生成CA证书

    openssl req -x509 -new -nodes -sha512 -days 3650 \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=MyPersonal Root CA" \
    -key ca.key \
    -out ca.crt
    
  • -x509: 生成一个自签名证书。

  • -new: 生成新的证书请求以及私钥,默认为1024比特。

  • -nodes: 表示不对私钥进行加密。

  • -sha512: 使用 SHA-512 哈希算法对证书进行签名。

  • -days 3650: 证书的有效期为 3650 天。

  • -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=MyPersonal Root CA。包括以下字段:

    • C=CN: 国家,CN 表示中国。
    • ST=Beijing: 州或省,Beijing 表示北京市。
    • L=Beijing: 地区或城市,Beijing 表示北京市。
    • O=example: 组织名称,example 表示示例组织。
    • OU=Personal: 组织单位,Personal 表示个人用途。
    • CN=MyPersonal Root CA: 公共名称,MyPersonal Root CA 表示个人根证书。
    • -key ca.key: 使用之前生成的 RSA 私钥 ca.key 文件。

-out ca.crt: 输出文件,生成的自签名证书将保存为 ca.crt 文件。

生成服务器证书

  1. 生成私钥
    openssl genrsa -out repo.local.key 4096
    
  2. 生成证书签名请求 (CSR)
    openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=repo.local" \
    -key repo.local.key \
    -out repo.local.csr
    
  3. 生成 x509 v3 扩展文件
    cat > v3.ext <<-EOF
    authorityKeyIdentifier=keyid,issuer
    basicConstraints=CA:FALSE
    keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
    extendedKeyUsage = serverAuth
    subjectAltName = @alt_names
    
    [alt_names]
    DNS.1=repo.local
    DNS.2=localhost
    EOF
    
  4. 使用该文件为您的 Harbor 主机生成证书
    openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in repo.local.csr \
    -out repo.local.cert
    
  5. DockerHarbor提供证书 (Centos)
    配置ca机构证书,服务器证书,服务器密钥
    mkdir /etc/docker
    cp repo.local.cert /etc/docker/repo.local/
    cp repo.local.key /etc/docker/repo.local/
    cp ca.crt /etc/docker/repo.local/
    
    编辑docker配置文件
    {
    	"tls": true,
    	"tlsverify": true,
    	"tlscacert": "/etc/docker/repo.local/ca.crt",
    	"tlscert": "/etc/docker/repo.local/repo.local.cert",
    	"tlskey": "/etc/docker/repo.local/repo.local.key"
    }
    
    
    重启docker
    systemctl restart docker		
    

Harbor下载安装

  1. 下载需要的Harbor版本

  2. 离线安装

     tar -zxvf harbor-offline-installer-v2.11.0.tgz -C /usr/local
    
  3. 修改配置文件(将hostname修改为对应ip,此处的repo.local已经再/etc/hosts配置过)
    在这里插入图片描述
    在这里插入图片描述

  4. 安装./install.sh, 访问https://服务器ip查看。 此时如果已经安装过registry,将其删除即可

    在这里插入图片描述
    在这里插入图片描述
    账号密码: admin/Harbor12345, 密码对应yaml文件中的harbor_admin_password
    在这里插入图片描述

镜像上传测试

  1. 登录私有仓库(账号密码同上)
    docker login repo.local
    
  2. 根据界面说明上传镜像测试即可在这里插入图片描述

配置其他机器连接私有仓库

  1. 修改/etc/hosts文件(注意左侧为私有仓库地址,右侧为私有仓库地址映射)
    192.168.137.96 repo.local
    
  2. 复制CA证书、服务器密钥、服务器证书到 客户端服务器(slave1)
    scp /etc/docker/repo.local/* slave1:/etc/docker/repo.local
    
  3. 创建并写入文件/etc/docker/daemon.json
    cat > /etc/docker/daemon.json <<- EOF
    {
    	"registry-mirrors" : ["https://cpzzspgp.mirror.aliyuncs.com"],
    	"insecure-registries": ["repo.local"],
    	"tls": true,
    	"tlsverify": true,
    	"tlscacert": "/etc/docker/repo.local/ca.crt",
      	"tlscert": "/etc/docker/repo.local/repo.local.cert",
    	"tlskey": "/etc/docker/repo.local/repo.local.key"
    	}
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值