这里采用离线安装的方式,安装需要有root权限。
请先安装好docker和docker-compose
编辑/etc/docker/daemon.json文件,没有这个文件的话就新建它,但路径不能改。
vim /etc/docker/daemon.json
添加需要装harbor的机器添加机器IP或者可用的域名,否则其他机器无法docker login 192.168.255.128
{
"insecure-registries" : ["192.168.255.128"]
}
重启docker
下载地址:http://harbor.orientsoft.cn/
harbor-offline-installer-v1.5.0.tgz 09-May-2018 03:22 823M
tar zxvf harbor-offline-installer-v1.5.0.tgz
cd harbor
mkdir cert
cd cert
说明:解压得到harbor目录,在文件下创建cert目录,用于放置HTTPS相关证书。
关键点:制作证书前需要设置openss的配置文件,在[ v3_ca ]
下添加subjectAltName = IP:192.168.255.128,否则做出来的证书使用docker登录会报:x509: cannot validate certificate for 192.168.255.128 because it doesn't contain any IP SANs
错误。
vim /etc/pki/tls/openssl.cnf
[ v3_ca ]
subjectAltName = IP:192.168.255.128
切换到放置证书的目录
cd harbor/cert/
制作证书命令
openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout ca.key \
-x509 -days 365 -out ca.crt \
-subj "/C=CN/ST=Guangdong/L=Shenzhen/O=WB/OU=IT/CN=192.168.255.128/[email protected]"
说明:C=CN(国家),ST=Guangdong(省份),L=Shenzhen(城市),O=WB(公司),OU=IT(部门),CN=192.168.255.128(IP-关键点),[email protected](邮箱)
证书包含ca.key和ca.key两个文件
[root@localhost cert]# ls
ca.crt ca.key
cd harbor/
vim harbor.cfg
修改内容如下:
hostname = 192.168.255.128
ui_url_protocol = https
ssl_cert = harbor/cert/ca.crt
ssl_cert_key = harbor/cert/ca.key
运行安装脚本
cd harbor/
./install.sh
安装完成后docker中会跑有8个harbor相关容器
用浏览器打开https://192.168.255.128/会出现登录页面,默认的账户:admin:Harbor12345
拉取一个镜像,打个tag,然后上传。
docker login 192.168.255.128
docker pull google/cadvisor:latest
docker tag google/cadvisor:latest 192.168.255.128/library/google/cadvisor:latest
docker push 192.168.255.128/library/google/cadvisor:latest
在浏览器中可以看到
使用docker登录,在拉取镜像
docker login 192.168.255.128
docker pull 192.168.255.128/library/google/cadvisor:latest
可以看到已经把镜像拉下来了
因为证书时自己制作的,并没有权威认证,需要把ca.crt复制到其他机器添加信任,docker才能登录harbor。
把证书复制到其他机器192.168.255.129
cd harbor/cert/
scp ca.crt 192.168.255.129:~
登录到192.168.255.129,切换到证书所在目录,把证书添加到docker信任的目录。
cd ~
mkdir -p /etc/docker/certs.d/192.168.255.128/
mv ca.crt /etc/docker/certs.d/192.168.255.128/
192.168.255.128是装harbor的机器的IP。
然后就可以像第六步一样拉取镜像了。
注意的点:
1、制作HTTPS证书前要修改openssl.cnf的配置。
2、其他机器要把证书添加信任。