一、安装底层需求
Python应该是2.7或更高版本
Docker引擎应为1.10或更高版本
Docker Compose需要为1.6.0或更高版本
docker-compose下载安装:
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
二、仓库端
Harbor 安装(安装v1.x.x版本):Harbor 官方地址:https://github.com/vmware/harbor/releases
1 、 解 压 软 件 包 : tar xvf harbor-offline-installer-<version>.tgz (下载离线包,能节省时间)
https://github.com/vmware/harbor/releases/download/v1.2.0/harbor-offline-installer-v1.2.0.tgz
2、配置harbor.cfg
a、必选参数
hostname:写入仓库ip地址(写私有ip)或域名
ui_url_protocol:http或https。默认为http,需要修改为https
以下不需修改(做了解):
db_password:用于db_auth的MySQL数据库的根密码。更改此密码进行任何生产用途
max_job_workers:(默认值为3)作业服务中的复制工作人员的最大数量。对于每个映像复制作业,
工作人员将存储库的所有标签同步到远程目标。增加此数字允许系统中更多的并发复制作业。但是,由于每个工
作人员都会消耗一定数量的网络/ CPU/IO资源,请根据主机的硬件资源,仔细选择该属性的值
customize_crt:( on或off。默认为on)当此属性打开时, prepare脚本将为注册表的令牌的生成/验证创建
私钥和根证书
ssl_cert: /data/cert/server.crt SSL证书的路径,仅当协议设置为https时才应用
ssl_cert_key: /data/cert/server.csr SSL密钥的路径,仅当协议设置为https时才应用
secretkey_path:/data/cert/ 用于在复制策略中加密或解密远程注册表的密码的密钥路径
3、创建 https 证书以及配置相关目录权限
mkdir -p /data/cert
cd /data/cert
openssl genrsa -des3 -out server.key 2048
openssl req -new -key server.key -out server.csr
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
chmod -R 777 /data/cert
4、运行脚本进行安装
cd 进入解压包
./install.sh
5、访问测试
https://公有IP地址 (若无公有IP,将私有IP代替)。
请注意,默认管理员用户名/密码为admin / Harbor12345
5.1、进入web端
新建私有/公有项目(我建的是xitong),再新建用户,打开xitong项目把我新建的用户添加进去【此处作为客户端操作时客户登陆harbor进行镜像拉取,但是项目如果是公有就不需要登陆用户即可pull项目】
6、上传镜像进行上传测试
a、指定镜像仓库地址*(服务端私有IP)
vim /etc/docker/daemon.json
{
"insecure-registries": ["serverip"]
#或"insecure-registries": ["serverip:80"]
}
b、下载测试镜像
docker pull hello-world
c、给镜像重新打标签(docker tag 原名:原版本 仓库地址(私有IP)/仓库名/镜像名:版本)
docker tag hello-world:latest serverip/xitong/hello-world:v1.0
或
docker tag hello-world:latest serverip:80/xitong/hello-world:v1.0
d 、 登 录 进 行 上 传(此处serverip是私有IP的)
docker login serverip
d 、 进 行 上 传
docker push serverip/xitong/hello-world:v1.0
或
docker push serverip:80/xitong/hello-world:v1.0
三、客户端 其它 Docker 客户端下载测试(假设与客户端同局域网)
a、指定镜像仓库地址(服务端私有IP)
vim/etc/docker/daemon.json
{
"insecure-registries": ["serverip"]
#或"insecure-registries": ["serverip:80"]
}
b 、 登 录 进 行下载
docker login serverip
c、下载测试镜像()
docker pull serverip/xitong/hello-world:v1.0
或
docker pull serverip:80/xitong/hello-world:v1.0