Docker:Harbor本地镜像仓库部署

目录

一、Docker及组件安装

二、镜像仓库搭建(harbor)及使用

1、环境要求

2、harbor安装

2.1、下载解压

2.2、修改配置

2.3、手动生成SSL证书

生成证书颁发机构证书:

生成服务器证书:

向 Harbor或docker主机提供证书:

2.4、准备安装包

2.5、安装harbor

2.6、浏览器访问

2.7、harbor服务

3、推送镜像

3.1 新建项目

3.2 在/etc/docker/daemon.json添加私库地址

3.3、登录并推送镜像

5、镜像仓库同步

 5.1、添加同步仓库(从库)

5.2、设置同步任务(从库)

5.3、从库需要添加Https证书,并重新编排Harbor容器

5.4、同步仓库镜像


一、Docker及组件安装

1、docker

    Index of /docker-ce/linux/centos/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

或 阿里云开源镜像站资源目录

升级:

#升级需要先卸载,再重新安装。升级完记得手动启动一下docker。

rpm -qa|grep docker

yum remove ...

systemctl start docker

2、docker-compose安装

        下载:

                官网:https://github.com/docker/compose/releases

                百度云:链接:https://pan.baidu.com/s/1QTsyihDXAOC1eV7WVRLzaw 
                                提取码:1234 

安装

        #将下载的文件移动并重命名,放置PATH任意一个目录下,例/usr/local/bin

        # 给docker compose 文件授权

                sudo chmod +x /usr/local/bin/docker-compose

        # 查看一下version,显示有版本号那就说明安装成功了

                docker-compose version

二、镜像仓库搭建(harbor)及使用

        Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。

1、环境要求

docker

        可从各国内镜像站获取docker安装包。如下,以centos7.9系统为例:

Index of /docker-ce/linux/centos/7.9/x86_64/stable/Packages/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

docker-compose

        官网:   https://github.com/docker/compose/releases

openssl

harbor安装包

        官方地址:https://github.com/goharbor/harbor/releases

        百度云: 链接:https://pan.baidu.com/s/1KIkq85XQjGXoYCdj4gMOwg 
                       提取码:1234 

        项目地址:(包含安装指导)

GitHub - goharbor/harbor: An open source trusted cloud native registry project that stores, signs, and scans content.

2、harbor安装

2.1、下载解压

#

tar -xvf harbor-offline-installer-v2.4.1.tgz -C /usr/loacl
cd /usr/local/harbor

2.2、修改配置

        配置文件是harbor.yml,如果没有就将harbor.yml.tmpl复制并重命名一份。

        修改其中的hostname、port、证书路径等。

        若不使用https,则注释相关配置。若要启用https,需要生成相应证书文件,并填写相应路径,如下。

 hostname: myharbor1.com

# http related config
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 8088

# https related config
https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /your/myharbor1.com.crt
  private_key: /your/myharbor1.com.key
 

2.3、手动生成SSL证书

参考官网配置:  Harbor docs | Configure HTTPS Access to Harbor

(若不启用https,可略过此步):

这里我以myharbor1.com域名为例,作为我第一台harbor镜像仓库的访问域名。

生成证书颁发机构证书:

2.3.1、生成CA证书私钥

openssl genrsa -out ca.key 4096

2.3.2、生成 CA 证书。

openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=myharbor1.com" \
 -key ca.key \
 -out ca.crt

生成服务器证书:

2.3.3、生成私钥

openssl genrsa -out myharbor1.com.key 4096

2.3.4、生成证书签名请求 (CSR)

openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=myharbor1.com" \
    -key myharbor1.com.key \
    -out myharbor1.com.csr

2.3.5、生成 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=myharbor1.com
DNS.2=myharbor1
DNS.3=hostname
EOF

2.3.6、使用该v3.ext文件为您的 Harbor 主机生成证书

openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in myharbor1.com.csr \
    -out myharbor1.com.crt

向 Harbor或docker主机提供证书:

2.3.7、将证书放入/etc/docker/certs.d/myharbor1.com目录下(手动创建相关目录)。重启docker。

     

2.4、准备安装包

./prepare

docker-compose up –d

2.5、安装harbor

./install.sh

安装成功截图

注意:可能会提示docker版本过低,需要升级docker版本

2.6、浏览器访问

        由于我的域名是个人使用的,用域名访问需要先配置hosts绑定(最好是设置内部DNS解析,不然麻烦很多)。

        192.168.118.192  myharbor1.com

        默认账号和密码是admin和Harbor12345,配置文件中有写。可使用ip或域名访问(如果有设置域名的话)。

 

2.7、harbor服务

        harbor相关的服务容器有9个,请确认是否都启动了。若检查有相关容器未启动,可手动启动(docker start  container_id

3、推送镜像

3.1 新建项目

假设我这里的项目叫“future”

         推送命令提示:

3.2 在/etc/docker/daemon.json添加私库地址

        docker默认使用https,如果要使用http,则需要修改/etc/docker/daemon.json文件(若没有该文件则新建)。因此在登录harbor之前需要在/etc/docker/daemon.json添加私库地址。

{
 "insecure-registries": [
    "myharbor1.com"
  ]
}

注意:如果使用私网域名,请提前在/etc/hosts文件中添加映射,或者在内网DNS中添加解析。

3.3、登录并推送镜像

#登录并输入账号

        docker login myharbor1.com

        注意:这里的域名要和配置文件里的一样。若登录报错,查看下面补充注意事项说明。

#制作镜像

        docker tag [images]:[tag] [harbor ip]:[port]/[library]/[images]:[tag]

        例:docker tag memcached:latest myharbor1.com/future/memcached:latest

#推送镜像

        例:docker push myharbor1.com/future/memcached

注意:

若登录docker login myharbor1.com报错如下:

Login did not succeed, error: Error response from daemon: Get "https://myharbor1.com/v2/": x509: certificate signed by unknown authority

        安装了docker之后就有/etc/docker目录,其下面是daemon.json和key.json。需要在下面继续创建certs.d/<ip>或certs.d/<域名>,这个 ip或域名 即为证书创建过程中配置的,表示该证书仅能给该 ip或域名 使用,然后将应用证书、应用私钥、CA证书放置到该目录下,并且应用证书和应用私钥要求名称为ip.cert和ip.key(目录和文件名为证书配置的 ip或域名,这个是固定格式,否则在docker访问的时候会解析不到文件)

        这里需要将证书放入/etc/docker/certs.d/myharbor1.com目录下(手动创建相关目录)。重启并重新登录即可。

 

5、镜像仓库同步

        我这里配置了两台harbor镜像仓库服务器,分别是myharbor1.commyharbor2.com。为了方便,我配置了内部DNS解析服务。现在要让myharbor1.com作为总部的镜像仓库(即主库),让myharbor2.com作为分部的镜像仓库(即从库),因此myharbor2.com仓库需要从总部那边同步镜像到本地。配置如下:

 5.1、添加同步仓库(从库)

        “仓库管理” 

5.2、设置同步任务(从库)

       “ 复制管理”

 

5.3、从库需要添加Https证书,并重新编排Harbor容器

        在myharbor2.com主机上,将myharbor1.com的https证书放入/etc/docker/certs.d/myharbor1.com目录下(手动创建相关目录)。重新编排启动。

5.4、同步仓库镜像

        选中任务==》复制==》观察同步状态

 

补充:Harbor的数据(镜像,账号等)是保留在/data目录下的,因此重新编排或者安装是不会丢失数据的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值