dockerhub私有镜像仓库harbor部署

Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。

一、docker-ce及docker-compose安装

1.安装docker-ce

安装一些必要的系统工具

yum install -y yum-utils device-mapper-persistent-data lvm2


添加docker镜像源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装 Docker-CE

yum -y install docker-ce

开启Docker服务

systemctl start docker.server

备注:

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

#请添加内核配置参数以启用这些功能。
$ sudo tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
然后重新加载 sysctl.conf 即可

$ sudo sysctl -p

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
chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose version
 

二、安装Harbor

从 github harbor 官网 release 页面下载指定版本的安装包。

这里推荐使用离线安装,方便内部局域网搭建私有仓库

如果服务器可以访问github,可以使用如下命令安装

下载

wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz

解压
tar xvf harbor-offline-installer-v1.1.2.tgz

如果服务器无法访问github

我们可以先在本机访问https://github.com/goharbor/harbor/releases下载最新版

这里以笔者部署时最新版本1.8.0为例,注意,要下载offline版本,大概有500M

下载后上传到服务器的某个路径下,在该路径下执行解压命令

tar xvf harbor-offline-installer-v1.8.0.tgz

解压完成之后查看

在第一次启动之前是没有docker-compose文件的,这里先忽略。

接下来,修改配置文件harbor.yml

(备注:如果在修改配置文件之前已经启动,可以仍在解压的路径下执行docker-compose down -v 停止并删除正在运行的实例)

配置文件修改如下几处

hostname配置成解析好的二级域名

开启https,并且将申请的ssl证书上传到服务器指定目录下(这个我们可以任意指定,只要保证和配置文件中的路径一致即可)

开启https之后,以后的访问都会自动重定向到https地址

控制台默认的用户名为admin,密码是Harbor12345

配置文件修改完成之后,可以进行初始化启动

./install.sh

如果之前已经启动过则先停止并删除容器实例

docker-compose down -v

在重启生成配置

./prepare

最后启动

docker -compose up -d

启动完成后,我们访问刚设置的hostname即可 https://harbor.efcore.cn,默认是443端口,如果端口占用,我们可以去修改docker-compose.yml文件中,对应服务的端口映射。windos,hosts文件地址:C:\Windows\System32\drivers\etc,将域名与ip添加进去即可。 
 

登录之后,可以看到系统功能模块如下

项目:新增/删除项目,查看镜像仓库,给项目添加成员、查看操作日志、复制项目等
日志:仓库各个镜像create、push、pull等操作日志
系统管理 
用户管理:新增/删除用户、设置管理员等
复制管理:新增/删除从库目标、新建/删除/启停复制规则等
配置管理:认证模式、复制、邮箱设置、系统设置等
其他设置 
用户设置:修改用户名、邮箱、名称信息
修改密码:修改用户密码
 

最后,我们来进行测试

首先新建一个项目,命名为dotnet

我们根据需要决定是否公开,公开的镜像不需要docker login即可直接docker pull拉取

新建项目完毕后,我们就可以用admin账户提交本地镜像到Harbor仓库了

docker login harbor.efcore.cn

docker images

docker tag k8sdemo harbor.efcore.cn/dotnet/k8sdemo:v1.0

(备注:tag为latest的可以直接写镜像名称)

docker push harbor.efcore.cn/dotnet/k8sdemo:v1.0

推送成功后,即可在dotnet项目下查看到该镜像

接下来我们尝试pull到服务器上

docker pull harbor.efcore.cn/dotnet/k8sdemo:v1.0

然后尝试启动

在通过ip+端口访问API,一整套harbor部署流程到此结束

切换项目的私有和公开属性,在项目的配置管理中选中或反选,然后保存即可。

取消公开后需要docker login才能拉取镜像

如在安装或部署中遇到其他问题,请前往https://github.com/goharbor/harbor/issues

参考https://github.com/goharbor/harbor/tree/release-1.8.0/docs

https://blog.csdn.net/weixin_41465338/article/details/80146218?utm_source=blogxgwz0

发布了71 篇原创文章 · 获赞 19 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/ujm097/article/details/90604866