环境说明:
系统:centos7.4
docker版本:20.10.18
docker-compose版本:1.29.2
harbor版本:2.6.0
# 卸载旧版本
rpm -qa | grep docker | xargs rpm -e
# 安装最新版本
curl -fsSL https://get.docker.com/ | sh
# 查看当前docker版本
docker -v
# 安装pip
yum install python3-pip
# 通过pip安装docker-compose
pip3 install docker-compose
# 查看docker-compose版本
docker-compose --version
如果在安装过程中出现问题:
解决方法:pip3 install -U pip setuptools
下载:https://github.com/goharbor/harbor/releases
解压下载的文件: tar -zxf harbor-online-installer-v2.6.0.tgz
harbor支持http和https协议,实际生产环境中建议使用https
生成自签名证书文件,如果不使用https访问,可跳过此步骤
# 生成ca.key
openssl genrsa -out ca.key 4096
# 生成ca.crt
openssl req -x509 -new -nodes -sha512 -days 3650 -key ca.key -out ca.crt -subj "/C=CN/ST=<省份>/L=<城市>/O=<组织>/OU=<公司>/CN="
# 生成server.key
openssl genrsa -out server.key 4096
# 生成server.csr
openssl req -sha512 -new -key server.key -out server.csr -subj "/C=CN/ST=<省份>/L=<城市>/O=<组织>/OU=<公司>/CN="
# 生成v3.ext
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=192.168.56.10
DNS.2=harbor
DNS.3=ks-allinone
EOF
# 生成server.crt
openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt
# 生成server.sert
openssl x509 -inform PEM -in server.crt -out server.cert
修改harbor.yml配置文件
hostname: 本机IP
http:
port: 80 # http端口
# 如果不使用https注释以下内容
https:
port: 443 # https端口
# 证书位置
certificate: /root/harbor/cert/server.crt
private_key: /root/harbor/cert/server.key
harbor_admin_password: Harbor12345 # 页面登陆默认密码,用户名admin
# 数据库密码
database:
password: root123
安装
./install.sh
过程中会下载相关镜像
访问harbor仓库
http://仓库IP或者https://仓库IP
创建新项目:
访问级别(公开):即docker 在pull下载镜像时候,不需要登陆即可下载此项目下的镜像
docker推送镜像
修改/etc/docker/daemon.json文件,新增或修改以下配置:
"insecure-registries": ["仓库ip地址:端口"]
使配置生效
systemctl daemon-reload
systemctl restart docker
推送镜像
# 保存运行中的docker服务为镜像
# 192.168.56.10:80为仓库地址
# test为新建项目名称
# test:latest为镜像名+标签
docker commit -a "作者信息" -m "提交信息" 容器ID 192.168.56.10:80/test/test:latest
# 登陆
docker login 仓库IP:端口
# 推送镜像
docker push 仓库IP:端口/仓库项目/镜像名:标签