企业级私有Docker仓库Harbor搭建
根据 Harbor官网 整理
1、请确认安装了Docker1.6以上版本并配置好Docker镜像源加速器
使用默认源几乎无法完成,以下为Docker1.10的Docker镜像源加速器配置示例
…
ExecStart=/usr/bin/dockerd-current \
–registry-mirror=https://docker.mirrors.ustc.edu.cn
…
2、下载安装好docker-compose1.6以上版本
curl -L https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
3、从官网下载在线安装包:harbor-online-installer-0.5.0.tgz
离线安装包方式试了很多次,几乎无法下载
4、解压安装包
tar -zxvf harbor-online-installer-0.5.0.tgz
5、配置https方式访问harbor
执行以下生成证书脚本(需要输入宿主机IP)
#!/bin/bash
set -e
read -p "Please input IP domain: " IP
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt<<EOF
CN
BJ
BJ
H3C
CLOUD
${IP}
zhang.xiangui@h3c.com
EOF
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ${IP}.key -out ${IP}.csr<<EOF
CN
BJ
BJ
H3C
CLOUD
zhangxiangui
zhang.xiangui@h3c.com
Harbor12345
h3c
EOF
echo subjectAltName = IP:${IP} > extfile.cnf
openssl x509 -req -days 365 -in ${IP}.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out ${IP}.crt
mkdir -p /etc/docker/certs.d/${IP}
cp ca.crt /etc/docker/certs.d/${IP}/
mkdir -p /root/cert/
cp ${IP}.crt ${IP}.key /root/cert/
cp ${IP}.crt /etc/pki/ca-trust/source/anchors/
update-ca-trust
echo "Finish!!"
执行完以上脚本后在脚本的同级目录下会产生类似以下文件(123.56.9.74会替换成你的IP):
123.56.9.74.crt 123.56.9.74.key ca.crt ca.srl
123.56.9.74.csr ca.key extfile.cnf
配置harbor.cfg
...
hostname = 123.56.9.74 (请配置成你的IP)
...
ui_url_protocol = https
...
harbor_admin_password = Harbor12345(请配置管理员登录密码)
...
ssl_cert = /root/cert/123.56.9.74.crt (替换你的IP即可)
ssl_cert_key = /root/cert/123.56.9.74.key(替换你的IP即可)
...
5、执行安装程序
./install
6、客户端登录Harbor并推送镜像
1、新建/etc/docker/certs.d/客户端IP/目录,将之前脚本产生的ca.crt证书拷贝到其下
2、登录并推送:
docker login -u admin -p Harbor12345 123.56.9.74
docker tag library/registry:2.5.0 123.56.9.74/library/registry:2.5.0
docker push 123.56.9.74/library/registry:2.5.0
–
注意事项
1、生成证书的脚本中的 zhangxiangui 除了不能使用${IP}外,其余均可使用。
2、配置http访问方式的话,需要在docker服务中添加 --insecure-registry=123.56.9.74
并重启Docker服务才能推送和下载镜像。