Docker私有仓库搭建与主从同步

IP主机名节点
192.168.117.14masterHarbor仓库节点
192.168.117.15slaveHarbor备份节点
192.168.117.16clientDocker客户端
环境准备(所有节点)
  1. 将提供的压缩包Docker.tar.gz上传至/root目录并解压。
[root@master ~]# tar zxvf Docker.tar.gz
  1. 配置本地yum源
[root@master ~]# vim /etc/yum.repos.d/local.repo
[kubernetes]
name=kubernetes
baseurl=file:///root/Docker
gpgcheck=0
enabled=1
  1. 取消Swap分区挂载
[root@master ~]# swapoff -a
[root@master ~]# sed -i 's@\(.*a2f8.*\)@\#\1@g' /etc/fstab  // 注意替换为自己的swap分区UUID
  1. 开启路由转发
[root@master ~]# cat >> /etc/sysctl.conf << EOF
> net.ipv4.ip_forward=1
> net.bridge.bridge-nf-call-ip6tables=1
> net.bridge.bridge-nf-call-iptables=1
> EOF
[root@master ~]# modprobe br_netfilter
[root@master ~]# sysctl -p
  1. 添加阿里云Yum源
[root@master ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@master ~]# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@master ~]# yum clean all
[root@master ~]# yum makecache
  1. 安装依赖包
[root@master ~]# yum install -y yum-utils device-mapper-persistent-data
  1. 安装docker-ce并启动
[root@master ~]# yum install -y docker-ce docker-ce-cli containerd.io
[root@master ~]# systemctl daemon-reload
[root@master ~]# systemctl restart docker
[root@master ~]# systemctl enable docker
  1. 执行解压出来的image.sh脚本
[root@master ~]# sh image.sh
案例实施
  1. 配置镜像加速器
[root@master ~]# vim /etc/docker/daemon.json
{
    "registry-mirrors":["https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"]
}
[root@master ~]# systemctl restart docker
  1. 生成CA证书
[root@master ~]# mkdir -p /data/ssl
[root@master ~]# cd /data/ssl
[root@master ssl]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 2.235 -out ca.crt
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Fujian
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:
[root@master ssl]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout www.uu.com.key -out www.uu.com.csr
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Fujian
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@master ssl]# openssl x509 -req -days 2.235 -in www.uu.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out www.uu.com.crt
  1. 分发证书
[root@master ssl]# cp -rvf ./www.uu.com.crt /etc/pki/ca-trust/source/anchors/
[root@master ssl]# update-ca-trust enable
[root@master ssl]# update-ca-trust extract
  1. 安装docker-compose
[root@master ~]# curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
[root@master ~]# chmod +x /usr/local/bin/docker-compose 
  1. 下载并解压Harbor安装包
[root@master ~]# wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.5.3.tgz
[root@master ~]# tar zxvf harbor-offline-installer-v1.5.3.tgz -C /opt/
  1. 修改Harbor配置文件
[root@master ~]# vim /opt/harbor/harbor.cfg
hostname = 192.168.117.14    #harbor的启动IP
ui_url_protocol = https    #启用加密传输协议https
ssl_cert = /data/ssl/www.uu.com.crt    #证书的位置
ssl_cert_key = /data/ssl/www.uu.com.key    #证书密钥的位置
harbor_admin_password = 000000    #修改harbor的admin用户的密码
  1. 安装Harbor
[root@master ~]# cd /opt/harbor/
[root@master harbor]# ./prepare
[root@master harbor]# ./install.sh --with-notary --with-clair
  1. 浏览器访问https://192.168.117.14即可访问harbor
    在这里插入图片描述

  2. 修改配置管理,项目创建选择“仅管理员”,取消勾选“允许自注册”
    在这里插入图片描述

  3. 配置docker

[root@master ~]# vim /etc/docker/daemon.json
{
    "registry-mirrors":["https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"],
    "insecure-registries":["192.168.117.14"]
}
[root@master ~]# systemctl restart docker
  1. 重新启动Harbor私有镜像仓库
[root@master ~]# cd /opt/harbor/
[root@master harbor]# ./prepare
[root@master harbor]# docker-compose down
[root@master harbor]# docker-compose up -d
  1. 下载镜像并打上标签
[root@master harbor]# docker pull centos
[root@master harbor]# docker tag centos:latest 192.168.117.14/library/centos:latest
  1. 登录验证Harbor仓库
[root@master harbor]# docker login https://192.168.117.14
Username: admin
Password: 000000
……
Login Succeeded
  1. 上传镜像到Harbor仓库
[root@master harbor]# docker push 192.168.117.14/library/centos:latest
  1. 重新启用漏洞扫描
[root@master harbor]# ./install.sh --with-notary --with-clair
  1. 浏览器访问Harbor,对镜像进行漏洞扫描
    在这里插入图片描述

  2. 为Docker客户端下发域名证书

[root@master ~]# cd /data/ssl
[root@master ssl]# scp -r www.uu.com.crt 192.168.117.16:/etc/pki/ca-trust/source/anchors/
  1. 进入Docker客户端,生效证书
[root@client ~]# update-ca-trust enable
[root@client ~]# update-ca-trust extract
[root@client ~]# systemctl restart docker
  1. 配置仓库
[root@client ~]# vim /etc/docker/daemon.json
{
    "registry-mirrors":["https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"],
    "insecure-registries":["192.168.117.14"]
}
[root@client ~]# systemctl daemon-reload
[root@client ~]# systemctl restart docker
[root@client ~]# docker pull nginx
  1. 登录仓库验证
[root@client anchors]# docker login https://192.168.117.14
Username: admin
Password: 000000
……
Login Succeeded
  1. 上传镜像
[root@client anchors]# docker tag nginx:latest 192.168.117.14/library/nginx:latest
[root@client anchors]# docker push 192.168.117.14/library/nginx:latest
  1. 浏览器登录Harbor查看镜像列表
    在这里插入图片描述

  2. 进入Harbor备份节点,如法炮制一个Harbor私有仓库

[root@slave ~]# vim /etc/docker/daemon.json
{
    "registry-mirrors":["https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"],
    "insecure-registries":["192.168.117.15"]
}
[root@slave ~]# systemctl restart docker
[root@slave ~]# mkdir -p /data/ssl
[root@slave ~]# cd /data/ssl
[root@slave ssl]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 2.235 -out ca.crt
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Fujian
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:
[root@slave ssl]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout www2.uu.com.key -out www.2uu.com.csr
Country Name (2 letter code) [XX]:CN     
State or Province Name (full name) []:Fujian
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@slave ssl]# openssl x509 -req -days 2.235 -in www2.uu.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out www2.uu.com.crt
[root@slave ssl]# cp -rvf ./www2.uu.com.crt /etc/pki/ca-trust/source/anchors/
[root@slave ssl]# update-ca-trust enable
[root@slave ssl]# update-ca-trust extract
[root@slave ssl]# curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
[root@slave ssl]# chmod +x /usr/local/bin/docker-compose
[root@slave ~]# wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.5.3.tgz
[root@slave ~]# tar zxvf harbor-offline-installer-v1.5.3.tgz -C /opt/
[root@master ~]# vim /opt/harbor/harbor.cfg
hostname = 192.168.117.15
ui_url_protocol = https
ssl_cert = /data/ssl/www2.uu.com.crt
ssl_cert_key = /data/ssl/www2.uu.com.key
harbor_admin_password = 000000
[root@slave ~]# cd /opt/harbor/
[root@slave harbor]# ./prepare 
[root@slave harbor]# ./install.sh --with-notary --with-clair
  1. 同样浏览器进入harbor界面,修改配置管理,项目创建选择“仅管理员”,取消勾选“允许自注册”
    在这里插入图片描述

  2. 进入Harbor仓库节点,从Harbor备份节点上拷贝证书

[root@master ~]# scp 192.168.117.15:/data/ssl/www2.uu.com.crt /etc/pki/ca-trust/source/anchors/
[root@master ~]# update-ca-trust enable
[root@master ~]# update-ca-trust extract
[root@master ~]# systemctl restart docker
  1. 重启Harbor
[root@master ~]# cd /opt/harbor/
[root@master harbor]# docker-compose down
[root@master harbor]# ./prepare
[root@master harbor]# ./install.sh --with-notary --with-clair
  1. 浏览器访问Harbor主仓库,新建一个仓库管理目标
    在这里插入图片描述

  2. 新建一个复制管理规则
    在这里插入图片描述

  3. 此时查看主库与从库的镜像仓库已经成功同步

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值