Harbor简介
Harbor(港口,港湾)是一个用于存储和分发Docker镜像的企业级Registry服务器。
除了Harbor这个私有镜像仓库之外,还有Docker官方提供的Registry。相对Registry,Harbor具有很
多优势:
1. 提供分层传输机制,优化网络传输 Docker镜像是是分层的,而如果每次传输都使用全量文件(所以
用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定
传输的对象。
2. 提供WEB界面,优化用户体验 只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界
面可以支持登陆、搜索功能,包括区分公有、私有镜像。
3. 支持水平扩展集群 当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分
解。
4. 良好的安全机制 企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,
具有更好的安全性。
Harbor安装
1)先安装Docker并启动Docker, 参考之前的安装过程
vim /etc/docker/daemon.json
{
"registry-mirrors":["https://b9pmyelo.mirror.aliyuncs.com"],
"insecure-registry":["192.168.369"]
}
2)先安装docker-compose (下载很慢)
curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
如果以上2)步骤不正常,就使用一下安装
Docker-compose安装步骤 https://docs.docker.com/compose/install/#install-compose
3)给docker-compose添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
4)查看docker-compose是否安装成功
docker-compose --version
5)下载Harbor的压缩包
yum -y install wget
wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.3.tgz
下载很慢,文件太大,最终用迅雷下载在传上服务器
6)上传压缩包到linux,并解压
tar -xzf harbor-offline-installer-v1.8.3.tgz
mkdir /opt/harbor
mv harbor/* /opt/harbor/
cd /opt/harbor/
7)修改Harbor的配置
vi harbor.yml
修改hostname和port
hostname: 192.168.66.102
port: 85
8)安装Harbor
./prepare
./install.sh
9)启动Harbor
docker-compose up -d 启动
docker-compose stop 停止
docker-compose restart 重新启动
10)访问Harbor
默认账户密码:admin/Harbor12345
在Harbor创建用户和项目
1)创建项目
Harbor的项目分为公开和私有的:
公开项目:所有用户都可以访问,通常存放公共的镜像,默认有一个library公开项目。
私有项目:只有授权用户才可以访问,通常存放项目本身的镜像。
我们可以为微服务项目创建一个新的项目:
2)创建用户
3)给私有项目分配用户
进入test项目->成员
4)以新用户登录Harbor
把镜像上传到Harbor
比如我是在192.168.3.89这台机构建镜像的,那以下操作都在3.89这台机器
1)给镜像打上标签
docker tag proa 192.168.3.69:85/test/proa:v1
2)推送镜像
docker push 192.168.3.69:85/test/proa:v1
这时会出现报错,是因为Docker没有把Harbor加入信任列表中 </DI< div>
3)把Harbor地址加入到Docker信任列表(是在本机,不是harbor3.69服务器上)
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://zydiol88.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.3.69:85"]
}
需要重启Docker
systemctl restart docker
4)再次执行推送命令,会提示权限不足
denied: requested access to the resource is denied
需要先登录Harbor,再推送镜像
5)登录Harbor
docker login -u casts -p 1989.coM 192.168.3.69:85
docker push 192.168.3.69:85/test/proa:v1
从Harbor下载镜像(也以3.89作为客户机)
提示:基本和上传操作一样
1)安装Docker,并启动Docker(已经完成)
2)把Harbor地址加入到Docker信任列表(是在本机,不是harbor3.69服务器上)
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://zydiol88.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.3.69:85"]
}
需要重启Docker
systemctl restart docker
3)登录Harbor
docker login -u casts -p 1989.coM 192.168.3.69:85
docker pull 192.168.3.69:85/test/proa:v1