harbor 镜像仓库
安装
- 安装 docker
- 安装 docker-compose
- 下载 harbor
wget https://github.com/goharbor/harbor/releases/download/v1.10.0/harbor-offline-installer-v1.10.0.tgz - 解压
- 创建数据目录
/data/harbor - 创建CA证书
/data/harbor/cert- 创建CA的证书
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt - 生成CA证书签名请求
openssl req -newkey rsa:4096 -nodes -sha256 -keyout harbor.xxx.com.key -out harbor.xxx.com.csr - 生成注册主机的证书
- 使用域名生成注册主机证书
openssl x509 -req -days 365 -in harbor.xxx.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out harbor.xxx.com.crt - 使用IP生成注册主机证书
echo subjectAltName = IP:192.168.88.88 > extfile.cnf
openssl x509 -req -days 365 -in harbor.xxx.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out harbor.xxx.com.crt
- 创建CA的证书
- 配制 配置文件 harbor.cfg or harbor.yml
#配置访问的地址
hostname = 198.168.88.88
#使用http方式访问管理界面
ui_url_protocol = http
#配置admin的密码,默认是Harbor12345
harbor_admin_password = 12345
#更改harbor存储路径,默认是/data
secretkey_path = /data/harbor
certificate: /data/harbor/cert/harbor.xxx.com.crt
private_key: /data/harbor/cert/harbor.xxx.com.key
- 配置文件docker-compose.yml
/compose_location/docker-compose.yml
- 检测并创建harbor需要文件
./prepare -
安装Harbor
./install.sh -
保存数据重新安装 (先进入harbor目录)
docker-compose up -d
docker-compose down -v
./install.sh可以重新安装
默认安装管理Harbor的生命周期
ocker-compose ps 查看
开始、停止、重启
您可以使用docker-compose来管理Harbor的生命周期。一些有用的命令列出如下(必须与docker-compose.yml在同一目录中运行)。
sudo docker-compose start/stop/restart
更新配置
要更改Harbour的配置,请先停止现有的Harbor实例并进行更新harbor.cfg。然后运行prepare脚本以填充配置。最后重新创建并启动Harbor的实例:
sudo docker-compose down -v
sudo vim harbor.cfg
sudo prepare
sudo docker-compose up -d
删除Harbor的容器,同时将镜像数据和Harbor的数据库文件保存在文件系统上
sudo docker-compose down -v
删除Harbor的数据库和镜像数据(用于干净的重新安装)
rm -r /data/database
rm -r /data/registry
- 管理界面
注:默认的用户名admin,密码Harbor12345。 -
错误
- Error response from daemon: Get https://harbor.xxx.com/v1/users/: x509: certificate signed by unknown authority
centos7系统以上报错的原因是因为自签的证书没有加入到系统级别信任,只需要将harbor.xxx.com.crt拷贝到/etc/pki/ca-trust/source/anchors/reg.你的域名.crt,然后需要执行命令update-ca-trust,最后重启harbor和docker即可!
ubunt16.04系统以上报错的原因是因为自签的证书没有加入到系统级别信任,只需要将harbor.xxx.com.crt拷贝到/usr/local/share/ca-certificates/reg.你的域名.crt,然后执行命令update-ca-certificates,最后重启harbor和docker即可!
/usr/share/ca-certificates/reg.你的域名.crt
图形化配制 dpkg-reconfigure ca-certificates
client:
确认证书是 crt 结尾的,不是按照如下命令转换
$ openssl x509 -inform PEM -in root-ca.cer -out root-ca.crt
拷贝证书文件到 /usr/local/share/ca-certificates
$ sudo cp root-ca.crt /usr/local/share/ca-certificates/
修改ca 配置文件
编辑 /etc/ca-certificates.conf。文件最后加入 ‘root-ca.crt’。里面文件的位置是相对 /usr/local/share/ca-certificates/
更新本机的ca 文件
$ sudo update-ca-certificates
Mac OS X
添加证书:
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/new-root-certificate.crt
移除证书:
sudo security delete-certificate -c “”
- Error response from daemon: Get https://harbor.xxx.com/v1/users/: x509: certificate signed by unknown authority
- Error response from daemon: Get https://192.168.88.88/v2/: dial tcp 192.168.88.88:443: connect: connection refused
在docker启动文件中添加–insecure-registry信任关系!
cat /usr/lib/systemd/system/docker.service -> –insecure-registry=harbor仓库IP地址+端口号
修改docker客户端配置/etc/default/docker
备注:增加harbor私有仓库地址,告知客户端要连接http的端口
DOCKER_OPTS=”–selinux-enabled –log-driver=journald –signature-verification=false –insecure-registry=192.168.88.98″
Server DOCKER_OPTS=”–insecure-registry 192.168.88.98″
vi /etc/systemd/system/multi-user.target.wants/docker.service
ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS - denied: requested access to the resource is denied
vi /etc/docker/daemon.json
{
"insecure-registries":["192.168.88.98:5000"],
"registry-mirrors":["https://cuzn52f3.mirror.aliyuncs.com","https://registry.docker-cn.com","https://reg-mirror.qiniu.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
vi /etc/default/docker
DOCKER_OPTS="--insecure-registry 192.168.88.98"
vi /etc/systemd/system/multi-user.target.wants/docker.service
可以在systemctl status docker 中查看具体配制文件路径
ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS
删除证书
$sudo rm -f /usr/local/share/ca-certificates/xinmu.crt
$sudo update-ca-certificates
或编辑 /etc/ca-certificates.conf 文件,把证书对应的行删除或注释掉。然后用命令 update-ca-certificates 使之生效。- FYI
(https://blog.51cto.com/13043516/2287267)
(http://blog.itpub.net/28624388/viewspace-2153546/)
- FYI