前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >外包精通--企业级镜像仓库Harbor

外包精通--企业级镜像仓库Harbor

原创
作者头像
Godev
修改2023-07-31 19:30:35
4650
修改2023-07-31 19:30:35
举报
文章被收录于专栏:GodevGodev

Harbor

Harbor是VMware公司最近开源的企业级Docker Registry项目, 其目标是帮助用户迅速搭建一个企业级的Docker registry服务,即能存储自己的镜像又有安全认证。

一、环境要求

harbor需要安装docker 17.06.0-ce+和docker-compose 1.18.0+才能使用

二、安装docker-ce

配置yum源

代码语言:txt
复制
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

安装docker-ce

代码语言:txt
复制
yum -y install docker-ce-18.06.1.ce-3.el7
systemctl enable docker && systemctl start docker

三、安装docker-compose

安装docker-compose

代码语言:txt
复制
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2.添加可执行权限

代码语言:txt
复制
sudo chmod +x /usr/local/bin/docker-compose

3.验证版本

代码语言:txt
复制
docker-compose --version

说明:Docker Compose是 docker 提供的一个命令行工具,用来定义和运行由多个容器组成的应用。

使用 compose,我们可以通过 YAML 文件声明式的定义应用程序的各个服务,并由单个命令完成应用的创建和启动。

四、获取Harbor离线安装包

下载网站 https://github.com/vmware/harbor/releases/

代码语言:txt
复制
解压:tar xvf harbor-offline-installer-v1.10.2.tgz

编辑配置文件:

代码语言:txt
复制
vim harbor.yaml
修改harbor配置文件里面的主机名(hostname)要改为:reg.syqedu.com(访问harbor的域名或外网IP)
更改证书所在的目录路径:
ssl_cert = /root/harbor/ssl/reg.syqedu.com.crt
ssl_cert_key = /root/harbor/ssl/reg.syqedu.com.key
更改harbor登录密码:
harbor_admin_password = 12345

五、生成SSL证书

进入harbor目录:

mkdir ssl 【创建证书存放目录】

cd ssl

1.生成根证书

代码语言:txt
复制
openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 -key ca.key -out ca.crt

2.生成一个证书签名,设置域名为:reg.syqedu.com

代码语言:txt
复制
openssl genrsa -out reg.syqedu.com.key 4096
openssl req -sha512 -new -key reg.syqedu.com.key -out reg.syqedu.com.csr

3.chrome浏览器会查看当前域名是否在证书中声明,该声明由 subjectAltName 字段设置。

上述的生成步骤默认未设置该字段,解决方法如下:

创建一个v3.ext文件:

代码语言:txt
复制
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=reg.syqedu.com
DNS.2=reg.syqedu
DNS.3=k8s-master #主机名
EOF

在最后生成主机证书的时候指定v3.ext文件

4.生成主机证书

代码语言:txt
复制
openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in reg.syqedu.com.csr -out reg.syqedu.com.crt

六、通过自带脚本安装

1.执行配置文件: ./prepare

2.然后执行安装:./install.sh

3.列出当前运行容器是否健康: docker-compose ps

4.然后绑定hosts访问即可

七、其他docker主机访问harbor

要把harbor上的自签证书拿到docker上:

mkdir -p /etc/docker/certs.d/reg.syqedu.com

把reg.syqedu.com.crt拷贝到这个目录下

docker login reg.syqedu.com #登录harbor仓库

然后上传镜像到harbor:

docker tag tomcat:v1 reg.syqedu.com/test/tomcat:v1 #打标记

docker push reg.syqedu.com/test/tomcat:v1 #上传

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Harbor
    • 一、环境要求
      • 二、安装docker-ce
        • 三、安装docker-compose
          • 四、获取Harbor离线安装包
            • 五、生成SSL证书
              • 六、通过自带脚本安装
                • 七、其他docker主机访问harbor
                相关产品与服务
                容器镜像服务
                容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档