Harbor支持角色访问控制,镜像复制,AD/LDAP集成的私有镜像库。 harbor项目地址:https://github.com/vmware/harbor/
根据官方文档进行docker-compose安装
curl -x $https_proxy -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
docker-compose version 1.17.0, build ac53b73
curl -x $https_proxy -OL https://github.com/vmware/harbor/releases/download/v1.2.2/harbor-online-installer-v1.2.2.tgz
解压
tar xvf harbor-online-installer-v1.2.2.tgz
创建harbor nginx服务器TLS证书
继续使用之前配置过的kubernetes-csr.json签名请求和ca来生成harbor TLS证书
cfssl gencert \
> -ca=ca.pem \
> -ca-key=ca-key.pem \
> -config=ca-config.json \
> -hostname=127.0.0.1,10.66.0.68,xjharbor.easthope.com \
> -profile=kubernetes \
> kubernetes-csr.json | cfssljson -bare harbor
生成
harbor-key.pem
harbor.pem
证书分发
mkdir -p /etc/harbor/ssl
mv harbor.pem harbor-key.pem /etc/harbor/ssl
根据官方说明配置文件harbor.cfg中有两个类别的参数,一个是required parameters,一个是optional parameters
本实验修改的Required parameters参数有
hostname 不要使用127.0.0.1否则外部客户端无法使用此镜像库
ui_url_protocol 使用http或https
db_password
ssl_cert
ssl_cert_key
存储backend可以使用swift、ceph等。
./install.sh进行安装
... ✔ ----Harbor has been installed and started successfully.----
通过域名(或IP地址)登入进行验证 https://xjharbor.domain.com/或https://10.66.0.68 默认的用户名为admin密码为Harbor12345,可以在配置文件中直接修改,也可以网页登入后进行修改。
登入网页后通过-配置管理,可以修改认证模式为LDAP
如果之前使用http协议而没使用https的话,也可以使用./prepare生成相关配置文件,同时docker-compose down然后docker-compose up -d即可
docker daemon没有使用"-insecure-registry"选项 复制ca证书到/etc/docjer.certs.d/xjharbor.domain.com(或镜像库的IP地址)下
mkdir -p /etc/docker/certs.d/10.66.0.68
cp ca.pem /etc/docker/certs.d/10.66.0.68/ca.crt
docker登入测试
docker login 10.66.0.68
Username: admin
Password:
Login Succeeded
修改之前的docker镜像代理,局域网私有镜像库不使用代理
cat /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://10.0.193.33:1080/" "NO_PROXY=localhost,127.0.0.1,10.66.0.68"
推送个镜像进行测试
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
gcr.io/google_containers/pause-amd64 3.0 99e59f495ffa 19 months ago 747kB
docker tag gcr.io/google_containers/pause-amd64:3.0 10.66.0.68/dev/pause-amd64:3.0
docker push 10.66.0.68/dev/pause-amd64:3.0
The push refers to a repository [10.66.0.68/dev/pause-amd64]
5f70bf18a086: Pushed
41ff149e94f2: Pushed
3.0: digest: sha256:f04288efc7e65a84be74d4fc63e235ac3c6c603cf832e442e0bd3f240b10a91b size: 939
检查docker已保存的认证信息
cat ~/.docker/config.json
下一步: RBAC授权