部署Harbor服务,推送和拉取Docker镜像
- 一、安装Harbor
- 1、软件下载
- 2、先将压缩包传到linux系统中
- 3、使用命令将压缩包解压
- 4、进入解压后的harbor目录下,修改harbor.yml
- 5、修改完之后,启动harbor目录下的install.sh脚本,执行安装程序,程序会自动完成安装过程
- 5、接着就可以浏览器访问harbor首页了
- 二、测试向Harbor服务器推送和拉取docker镜像
- 1、先在`Harbor`服务器上新建一个测试项目
- 2、在`daemon.json`中加入`Harbor`地址
- 3、准备一个测试镜像
- 4、测试向`Harbor`中推送`candytomcat`镜像
- 5、测试从`Harbor`服务下载`candytomcat`镜像
一、安装Harbor
1、软件下载
软件官网:https://github.com/goharbor/harbor/releases
我下载的是版本是1.10.6
2、先将压缩包传到linux系统中
3、使用命令将压缩包解压
tar -zxvf harbor-offline-installer-v1.10.6.tgz
4、进入解压后的harbor目录下,修改harbor.yml
hostname 192.168.1.100 # 修改主机名为当前系统的IP地址
# 下面两项看情况,没有端口冲突的话用默认的就行了
port: 5000 # 由于我80端口开了其他应用,防止有冲突,就换成了5000
需要将https下面的子配置全部注释掉,如下图
不然会报如下错误,具体意思是,你需要上传你的证书用于https加密服务,使得更安全,可是你又没有上传,并且修改默认的证书路径,所以出错了。这里我们暂时就不用它了。
5、修改完之后,启动harbor目录下的install.sh脚本,执行安装程序,程序会自动完成安装过程
./install.sh
如果安装过程中碰到因为其他错误而中断,可以参考这篇博客:
[](#8. 如果遇到报错:ERROR%3Aroot%3AError%3A The protocol is https but attribute ssl_cert is not set。 原因是harbor.yml中默认是配置https的端口及证书路径的。)
安装成功会打印如下信息:
5、接着就可以浏览器访问harbor首页了
默认账号密码可以在harbor.yml中可以找到
用户名是admin
,密码是Harbor12345
登陆成功进入首页
二、测试向Harbor服务器推送和拉取docker镜像
1、先在Harbor
服务器上新建一个测试项目
浏览器登录到Harbor主页,新建一个项目,填上项目名称,以项目名称为commons
为例,存储数量和容量不设限制默认为-1,点确定。
可以在列表中项目列表看到多了一个私有的项目commons
,点击项目名称,
进入项目操作界面再点击镜像仓库
最后边有推送镜像的模板,可以复制下来参考
2、在daemon.json
中加入Harbor
地址
为了更好的测试效果推送的效果,我这边重新开了另外一台虚拟机,预装了docker
和docker-compose
修改/etc/docker/daemon.json
文件,加入Harbor
地址,让docker
能找到它,内容如下:
{
"registry-mirrors": ["https://43h8ayp0.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.1.100:5000"]
}
重启docker
,并验证配置是否生效
systemctl restart docker //重启docker
docker info
如果可以看到刚才配置的内容即生效
3、准备一个测试镜像
基于官方tomcat
制作一个属于我自己特色的镜像candytomcat
,用于后面测试推送到Harbor
服务器
构建镜像Dockerfile
内容如下:
FROM tomcat
# 让tomcat的首页显示“Hello Harbor”字样
RUN echo "Hello Harbor" > /usr/local/tomcat/webapps/ROOT/index.jsp
构建tomcat
镜像
docker build -t candytomcat .
运行刚才构建的镜像
docker run -p 8888:8080 candytomcat -d
测试镜像运行成功,浏览器中也能打印出预期的值
参考刚才在Harbor
服务器中的指令为当前构建的candytomcat
镜像打个标记
docker tag candytomcat:latest 192.168.1.100:5000/commons/candytomcat:latest
查看Docker
镜像列表
docker images
可以看到多了一个符合Harbor
服务器命名格式的镜像,到此用于测试的镜像搞定了
4、测试向Harbor
中推送candytomcat
镜像
由于刚才创建的commons
项目是私有的,所以在上传前还需要进行用户登录,这里使用命令直接登录
docker login 192.168.1.100:5000 -u admin -p Harbor12345
将 192.168.1.100:5000/commons/candytomcat:latest
镜像上传到Harbor服务器
docker push 192.168.1.100:5000/commons/candytomcat:latest
如图上传成功
在Harbor
服务器上也可以看到这个镜像的信息
5、测试从Harbor
服务下载candytomcat
镜像
为了更好的测试效果拉取镜像的效果,再切换一台虚拟机
首先还是先修改/etc/docker/daemon.json
文件,加入Harbor
地址,内容如下:
{
"registry-mirrors": ["https://43h8ayp0.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.1.100:5000"]
}
拉取镜像前先进行用户登录
docker login 192.168.1.100:5000 -u admin -p Harbor12345
拉取 192.168.1.100:5000/commons/candytomcat:latest
镜像
docker pull 192.168.1.100:5000/commons/candytomcat:latest
拉取成功