略。。。
直接下载docker-compose文件,添加执行权限,并复制到bin目录下
chmod +x docker-compose-Linux-x86_64 cp docker-compose-Linux-x86_64 /bin/docker-compose
查看docker-compose版本
# docker-compose -v
docker-compose version 1.22.0, build f46880f
安装包地址:https://github.com/goharbor/harbor/releases
下载二进制安装包并解压
hostname = x.x.x.x # 本机ip
harbor_admin_password = 123456 # 登录harbor仓库的密码,默认Harbor12345
harbor原配置的数据库、registry均为docker容器,为了持久化存储,最好不用默认的数据库和镜像仓库
- 修改harbor.cfg 中数据库host,user,password
- 修改 harbor/common/templates/adminserver/env 中 MYSQL_DATABASE的值为外部数据库
- 在数据库中初始化表(找到对应harbor版本的数据库脚本,执行即可)
默认位置为 /data/registry, 删除该文件夹,创建目录 /app/data/registry,然后在/data目录下执行命令
ln -s /app/data/registry registry
openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=TW/ST=Taipei/L=Taipei/O=example/OU=Personal/CN=yourdomain.com" \
-key ca.key \
-out ca.crt
# yourdomain.com 指的是自己定义的域名
# 其他各项属性根据情况自定义(-subj里的配置)
1、创建私钥
openssl genrsa -out yourdomain.com.key 4096
2、生成签名请求
openssl req -sha512 -new \
-subj "/C=TW/ST=Taipei/L=Taipei/O=example/OU=Personal/CN=yourdomain.com" \
-key yourdomain.com.key \
-out yourdomain.com.csr
# yourdomain.com 指的是自己定义的域名
# 其他各项属性根据情况自定义(-subj里的配置)
3、生成注册主机证书
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=yourdomain.com
DNS.2=yourdomain
DNS.3=hostname
IP.1=192.168.159.200
EOF
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in yourdomain.com.csr \
-out yourdomain.com.crt
1、为harbor配置证书和密钥
cp yourdomain.com.crt /root/.cert/
cp yourdomain.com.key /root/.cert/
2、为docker配置密钥、证书与ca
# DOCKER守护进程将CRT文件作为CA证书和.CERP文件作为客户端证书进行解释
# 将crt文件转为 cert
openssl x509 -inform PEM -in yourdomain.com.crt -out yourdomain.com.cert
然后将 yourdomain.com.cert, yourdomain.com.key, ca.crt 复制到 /etc/docker/certs.d/[IP/yourdomain.com]/
执行命令使配置生效:
./prepare
执行以下命令启动:
docker-compose up -d
将服务端生成的ca.crt文件拷贝至客户端
客户端docker登录
/etc/docker/certs.d/[服务端IP或域名]/ca.crt
客户端即可使用
docker login 服务端IP
在浏览器中直接输入hostname地址,即可访问
记192.168.159.200 为node1,192.168.159.201 为node2节点
在客户端机器中执行命令
docker login 192.168.159.200
Username: admin
Password:
Login Successed
输入账号密码后登录成功。
选择本地镜像hello-world并给其打标签:
dicker tag hello-world 192.168.159.200/test/hello-world
将镜像推送至harbor
dicker push 192.168.159.200/test/hello-world
在harbor仓库中可看到相应镜像。
客户端直接执行命令
dicker pull 192.168.159.200/test/hello-world
即可将镜像拉至本地