Harbor是VMware公司开源的企业级DockerRegistry项目,其目标是帮助用户迅速搭建一个企业级的Dockerregistry服务。
它以Docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制(Role Based Access Control),AD/LDAP集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。
简单说来,Harbor封装了Docker的registry v2,帮用户提供了许多便捷管理的特性,方便用户操作。
1 环境准备
1.1 服务器配置
cpu:2核+
内存:4G+
硬盘:100G+
#用于显示系统上可使用的磁盘空间
df -h
1.2 CentOS7安装Docker
Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。
Docker CE 分为 stable test 和 nightly 三个更新频道。
官方网站上有各种环境下的 安装指南,这里主要介绍 Docker CE 在 CentOS上的安装。
Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装Docker。
1.2.1 卸载(可选)
如果之前安装过旧版本的Docker,可以使用下面命令卸载:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
1.2.2 安装Docker
首先需要虚拟机联网,安装yum工具
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
然后更新本地镜像源:
# 设置docker镜像源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
然后输入命令:
yum install -y docker-ce
docker-ce为社区免费版本。稍等片刻,docker即可安装成功。
1.2.3 启动Docker
Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议直接关闭防火墙!
启动docker前,一定要关闭防火墙!!!
启动docker前,一定要关闭防火墙!!!
启动docker前,一定要关闭防火墙!!!
# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
通过命令启动docker:
systemctl start docker # 启动docker服务
systemctl stop docker # 停止docker服务
systemctl restart docker # 重启docker服务
然后输入命令,可以查看docker版本:
docker -v
如图
1.2.4 配置镜像加速
docker官方镜像仓库网速较差,我们需要设置国内镜像服务:
参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://z0oareas.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
1.3 CentOS7安装DockerCompose
1.3.1 下载
Linux下需要通过命令下载:
# 安装
curl -L https://github.com/docker/compose/releases/download/1.29.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
1.3.2 修改文件权限
# 修改权限
chmod +x /usr/local/bin/docker-compose
1.3.3 Base自动补全命令
# 补全命令
curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
如果这里出现错误,需要修改自己的hosts文件:
echo "199.232.68.133 raw.githubusercontent.com" >> /etc/hosts
2 Harbor安装与部署
2.1 Harbor下载
点击tag,找到需要下载的版本
这里我们下载的版本是:v2.4.1
也可以使用命令下载(不推荐)
# wget + 复制的下载链接
wget https://github.com/goharbor/harbor/releases/download/v2.4.1/harbor-offline-installer-v2.4.1.tgz
如果使用Https协议,还需要准备证书,与Harbor安装包放在同一目录下
2.2 安装
2.2.1 解压安装包
在下载好的Harbor安装包目录下进行解压
tar xvf harbor-offline-installer-v2.4.1.tgz
在同目录下会生成一个harbor文件夹
如果有证书,还需要解压证书包
unzip 证书.zip
解压后会生成一个证书文件和密钥文件
将证书文件和密钥文件全部移到harbor文件夹里
mv 证书 harbor
mv 密钥 harbor
进入harbor文件夹,查看文件信息
cd harbor
ls
mv harbor.yml.tmpl harbor.yml
打开 harbor.yml文件
vi harbor.yml
注:证书密钥路径为绝对路径,例如:
2.2.3 执行
执行预备工具
./prepare
执行脚本
./install.sh
一共是9个容器
docker ps #查看容器
2.2.4 访问
因为目前尚未配置域名,可以使用IP地址进行访问
用户名:admin
密码:之前在配置文件中设置的密码
添加域名
vi /etc/hosts
前面是ip地址,后面是域名
3 Harbor使用
3.1 修改docker daemon.json文件
vi /etc/docker/daemon.json
cat /etc/docker/daemon.json
{
"insecure-registries":["#域名或者IP地址"]
}
重启加载daemon.json配置
systemctl daemon-reload
重启docker
systemctl restart docker
查看docker容器个数
docker ps
发现只启动了5个容器
回到harbor文件
cd /home/harbor
把已经启动的容器停下来并删除
docker-compose down
启动docker容器,并在后台进行
docker-compose up -d
重新数一下docker容器个数
docker ps
如果其他主机要使用harbor,也要修改docker daemon.json文件并重启
3.2 镜像上传
例如:上传centos镜像
查看是否有centos镜像
docker images
如果没有就直接拉取centos镜像
docker pull centos
镜像打包
docker tag centos:latest #域名或IP地址/#项目库名/centos:#版本号
镜像推送到Harbor
首先要登录
docker login #域名或ip地址
显示Succeeded说明登录成功
docker push #域名或IP地址/#项目库名/centos:#版本号
此时已经上传成功了
3.3 镜像拉取
这里有个拉取命令,点击复制即可
使用命令查看
docker images