Harbor由VMware公司出品,功能还是很强大,可以自行搭建一个私有Docker镜像仓库,在权限控制、镜像管理很方便。
本文以harbor1.2.0 为例进行安装。
一、准备
1、找一台虚拟机或独立Linux系统设备都可以,我的环境是 centos7.2.
2、需要首先安装docker和docker-compose 。
如果需要安装方法可以参考 https://blog.csdn.net/LUCKWXF/article/details/95958760
https://blog.csdn.net/LUCKWXF/article/details/96131392
3、下载harbor 离线安装文件:https://github.com/vmware/harbor/releases/download/v1.2.0/harbor-offline-installer-v1.2.0.tgz
二、开始安装
1、root用户,进入~目录。
上传harbor-offline-installer-v1.2.0.tgz到该目录
tar -zxvf harbor-offline-installer-v1.2.0.tgz
mv harbor /usr/local
2、创建证书及配置
openssl genrsa -des3 -out server.key 2048
[记住这步你设置的私钥密码]
3、openssl req -new -key server.key -out server.csr --创建证书请求
[输入刚才的私钥]
提示下:国家输入:CN 省份、城市都输入:BJ (根据你的需要)
组织:输入你的英文单位名称(如:myunitname)
地址:如:hub.myunitname.com (根据实际,建议myunitname.com 用你单位的域名)
接下来输入管理员邮件地址。
4、退秘钥,Nigx容器里没法接受秘钥。
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
[输入私钥密码]
5、创建证书:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
mkdir -p /data/cert
chmod -R 777 /data/cert
mv server.* /data/cert
6、安装 Harbor
cd /usr/local/harbor
vim harbor.cfg
-----------------------------------------------------------------------------
#修改hostname
hostname: hub.myunitname.com
#修改协议为https
ui_url_protocol = https
#修改管理员密码(可以采用默认,但这是不安全的)
harbor_admin_password: **********【设置你的管理员密码符合安全策略】
-------------------------------------------------------------------------------
保存后退出;
./install.sh --进行安装;需要耐心等待。
注意80端口不要被其他程序占用,Ngix容器要用到。
安装成功后会有如下容器被启动:
7、修改下
vim /etc/docker/daemon.json
{
"insecure-registries":["hub.myunitname.com"] --注意4个空格
}
vim /etc/hosts
【你服务器的IP地址】 hub.myunitname.com
8、重新启动下docker
systemctl restart docker
备注:如果彻底重启可参考
systemctl daemon-reload
systemctl restart docker
docker-compose down -v
docker-compose up -d
三、windows客户端访问
客户端 修改下 C:\Windows\System32\drivers\etc\hosts
-------------------------------------------------------------------------------------
【你服务器的IP地址如:192.168.0.160】 hub.myunitname.com
------------------------------------------------------------------------------------
打开浏览器输入 : https://hub.myunitname.com 正常就可以访问了。
用管理员admin 登录进入,建立其他账号、新建仓库都可以了。默认有个公用的libray库。
创建一个私有仓库 testlib
四、测试PUSH、PULL镜像。
找个linux客户端,修改下
vim /etc/docker/daemon.json
{
"insecure-registries":["hub.myunitname.com"] --注意4个空格
}
vim /etc/hosts
【你服务器的IP地址】 hub.myunitname.com
systemctl restart docker
docker pull hello-world 【从Docker仓库下载】
docker images 【查看已有镜像】
上传镜像
docker login hub.myunitname.com
docker tag hello-world:latest hub.myunitname.com/testlib/hello-world:v1.0
docker push hub.myunitname.com/testlib/hello-world:v1.0 --testlib是上面创建的仓库
下载镜像
docker pull hub.myunitname.com/testlib/hello-world:v1.0
说明:
hub.myunitname.com--是仓库地址
testlib--项目名称
hello-world-镜像名称
:v1.0 --版本号
(结束)