环境:准备两台测试机器
内存最少要2G
A机器名称=docker
B机器名称=harbor
为harbor机器自签发证书
若要了解签发证书详细步骤请点我
更改主机名称及创建证书目录
[root@localhost ~]# hostnamectl set-hostname harbor && bash
[root@harbor ~]# mkdir -p /data/ssl && cd /data/ssl
docker机器也改一下主机名称
[root@localhost ~]# hostnamectl set-hostname harbor && bash
生成sa证书
生成一个3072位的私钥
[root@harbor ssl]# openssl genrsa -out ca.key 3072
生成一个数字证书ca.pem,3650表示证书的有效时间是3年,如下图按提示自定义填写
[root@harbor ssl]# openssl req -new -x509 -days 3650 -key ca.key -out ca.pem
生成域名的证书
生成一个3072位的私钥
[root@harbor ssl]# openssl genrsa -out harbor.key 3072
生成一个证书请求,一会签发证书时需要的
[root@harbor ssl]# openssl req -new -key harbor.key -out harbor.csr
签发证书
[root@harbor ssl]# openssl x509 -req -in harbor.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out harbor.pem -days 3650
关闭防火墙及selinux并添加hosts
[root@harbor ssl]# systemctl disable firewalld --now
[root@harbor ssl]# setenforce 0
[root@harbor ssl]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
修改后hosts添加A机器及本机的域名&&& (两台机器都添加对方及本机的域名)
vim /etc/hosts
安装docker
两台机器都安装docker且配置也都同样做
若要了解安装docker详细步骤请点我
依次执行
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum makecache
yum -y install docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker --now
docker version
配置镜像加速器参考上方链接
开启包转发功能和修改内核参数
[root@harbor ssl]# cat > /etc/sysctl.d/docker.conf <<EOF
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> net.ipv4.ip_forward = 1
> EOF
[root@harbor ssl]# sysctl -p /etc/sysctl.d/docker.conf
[root@harbor ssl]# systemctl restart docker
安装harbor
在harbor机器上安装harbor、docker-compose并配置
harbor默认的账号密码:admin/Harbor12345
创建安装目录
[root@harbor ssl]# mkdir -p /data/install && cd /data/install
harbor下载离线包地址
https://github.com/goharbor/harbor/releases/
或者wget下载
wget https://github.com/goharbor/harbor/releases/download/v2.7.4-rc1/harbor-offline-installer-v2.7.4-rc1.tgz
解压并修改配置文件
[root@harbor install]# tar -zxvf harbor-offline-installer-v2.3.0-rc3.tgz
[root@harbor install]# cd harbor
[root@harbor harbor]# cp harbor.yml.tmpl harbor.yml
[root@harbor harbor]# vim harbor.yml
修改主机名及ssl证书的配置文件和key的路径存放位置
[root@harbor install]# ls /data/ssl/
ca.key ca.pem ca.srl harbor.csr harbor.key harbor.pem
安装docker-compose
由于harbor是依赖于docker-compose安装的,需要安装
[root@harbor harbor]# wget https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64
[root@harbor harbor]# mv docker-compose-Linux-x86_64.64 /usr/bin/docker-compose
[root@harbor harbor]# chmod +x /usr/bin/docker-compose
[root@harbor harbor]# docker-compose --version
安装harbor离线镜像包
进入到harbor下并下载
[root@harbor harbor]# cd /data/install/harbor
[root@harbor harbor]# bash install.sh
验证查看,如图所示
[root@harbor harbor]# docker-compose ps
[root@harbor harbor]# docker images
访问:
浏览器输入 ip:port
使用harbor
A机器使用harbor 上传拉取镜像
在harbor上创建一个项目
添加修改镜像加速地址
在原有的地址上加入harbor服务器的地址和主机名 内容如下图:
[root@docker docker]# cat /etc/docker/daemon.json
重新加载配置文件并重启docker
[root@docker docker]# systemctl daemon-reload
[root@docker docker]# systemctl restart docker
登入harbor (harbor机器的I)
[root@docker docker]# docker login 192.168.XX.131
上传镜像至harbor
下载一个tomcat镜像测试
[root@docker ~]# docker pull tomcat
将tomcat镜像添加标签用于分辨测试(harbor的[ip]/[项目名称“test”]/[自定义标签名称]:[tag])
[root@docker ~]# docker tag tomcat 192.168.XX.131/test/tomcat:test_v1
[root@docker ~]# docker push 192.168.xx.131/test/tomcat:test_v1
上传之后在harbor上点击创建的项目test 就能看到上传的镜像
从harbor上下载镜像至本地
删除所有镜像
[root@docker ~]# docker rmi -f $(docker images | awk '{print $3}' | grep "[1-9]")
下载刚刚上传之harbor的镜像
[root@docker ~]# docker pull 192.168.xx.131/test/tomcat:test_v1