docker以https方式自建私有镜像仓库harbor
更新:HHH   时间:2023-1-7


基础环境
系统:centos7.4
首先关闭防火墙和selinux
iptables -F
setenforce 0
docker安装
安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
安装docker软件包源
yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce -y
安装docker-compase https://docs.docker.com/compose/install/
root用户下:curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

下载harbor安装包:https://github.com/goharbor/harbor/releases
我用的是harbor-offline-installer-v1.5.1.tgz版本 。

tar -xvf harbor-offline-installer-v1.5.1.tgz , cd harbor , mkdir ssl
然后开始自建证书, ssl目录存放我们创建的证书和公私钥等等。

openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt
输入国家CN, your name 可以输入自己的名字
创建生成ca的根证书。

openssl req -newkey rsa:4096 -nodes -sha256 -keyout reg.wangxinlei.com.key -out reg.wangxinlei.com.csr

openssl x509 -req -days 365 -in reg.wangxinlei.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out reg.wangxinlei.com.crt
请求颁发证书
生成后的文件如下图

修改配置文件 harbor.cfg
cd /root/harbor , vim harbor.cfg
hostname = reg.wxl.com #hostname 为你生成证书的时候输入的域名
ui_url_protocol = https 协议默认是http,修改为https

ssl_cert = ./ssl/reg.wxl.com.crt 这两个文件路径改为真实路径
ssl_cert_key = ./ssl/reg.wxl.com.key

harbor_admin_password = 123456 harbor登录的管理员密码默认为harbor12345 ,可以改为自己需要的密码

systemctl start docker , 启动docker。
systemctl enable docker 开机自启docker

harbor路径下执行 ./prepare 准备以刚才修改的内容的配置文件

在harbor路径下执行 ./install.sh 安装

提示docker-compose版本需要
[root@master01 harbor]# ./install.sh

[Step 0]: checking installation environment ...

Note: docker version: 18.09.2
✖ Need to install docker-compose(1.7.1+) by yourself first and run this script again.

重新安装docker-compose ,cd /usr/local/bin/, rm -rf docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

再次执行./install.sh 安装harbar 。
然后修改hosts文件。windows目录:C:\Windows\System32\drivers\etc\hosts
添加 192.168.. reg.wangxinlei.com ,如果没有权限修改请修改文件权限。
linux系统在/etc/hosts 目录添加 192.168.. reg.wangxinlei.com

浏览器输入 reg.wangxinlei.com
输入配置文件内的账号密码 admin 123456

部署完成,下一步就是学习如何使用harbar私有仓库。

harbar 自带的项目library 可以用来存储一些公共的镜像,这个项目下镜像谁都可以pull 下载,但是不允许push 推送。

新建用户 :wangxl Wxl148539
进入library项目,新建成员把刚才新建的用户添加进去。

如果是本机登录harbar的话。先创建一个目录
mkdir -p /etc/harbar/certs.d/reg.wangxinlei.com
cp /root/harbar/ssl/reg.wangxinlei.com.crt 到上面的目录
并在/etc/hosts 添加域名解析

用户如果需要使用harbar ,push推送docker镜像的话,需要先登录
登录命令:
[root@master01 ~]# docker login reg.wangxinlei.com
Username: wangxl
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

登录成功。

将本地镜像上传到镜像仓库分为两步,第一步在项目中标记镜像
第二步推送镜像到当前项目
[root@master01 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 881bd08c0b08 Less than a second ago 109MB

以上面的镜像为例子

docker tag nginx reg.wangxinlei.com/test/nginx:v1
docker push reg.wangxinlei.com/test/nginx:v1

harbar用户手册地址https://github.com/goharbor/harbor/blob/master/docs/user_guide.md

返回云计算教程...