当前位置:   article > 正文

Harbor 企业级 docker 镜像仓库_harbor配置代理自动下载镜像

harbor配置代理自动下载镜像

企业级 docker 镜像仓库

harbor — 企业级docker镜像仓库
registry — docker 私有仓库 (不好用)

harbor 对 registry进行封装,功能更加完善

harbor原理图组件:

1、proxy 代理
	主要实现对请求的识别和分发,内置nginx

2、registry 
	实现对 docker pull(下载) / docker push(上传) 命令的响应

3、log collector
	收集日志

4、core service
	核心服务,UI --- web页面 token --- 用户验证 webhook --- 组件API接口
	
5、Database
	存储数据

6、job service
	负责镜像在 harbor 仓库之间的同步和传输

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

在这里插入图片描述

部署

一、docker环境

docker-compose
harbor-offline-installer-v1.6.2.tgz

安装docker,二台全部部署
yum -y install yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo=http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 
yum makecache fast
yum -y install docker-ce
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
启动docker,配置镜像加速,下载一个镜像测试
#启动docker
[root@node2 yum.repos.d]# systemctl start docker


#开启镜像加速的网页,如下:
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://m41udh8b.mirror.aliyuncs.com"]
}
EOF

#修改docker info中的错误参数
cat >> /etc/sysctl.conf << EOF
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF

#sysctl -p
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

二、安装 harbor

[root@node2 harbor]#  tar zxvf harbor-offline-installer-v1.6.2.tgz -C /usr/local/
[root@node2 ~]# mv docker-compose  /usr/local/bin/
[root@node2 ~]# chmod +x /usr/local/bin/docker-compose 
[root@node2 ~]# cd /usr/local/harbor/
[root@node2 harbor]# vim harbor.cfg 
---
hostname = 192.168.168.10   	#修改成自己的本机IP地址

[root@node2 harbor]# ./install.sh

安装成功如下图显示: harbor 已经安装成功了
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

三、启动和关闭

harbor 的启动和关闭
1)启动harbor:docker-compose start
2)关闭harbor:docker-compose stop
3)重启harbor:先关闭再开启,用restart容易出错
--- 安装完 harbor之后会自动进行第一次的启动,无需再次启动
  • 1
  • 2
  • 3
  • 4
  • 5

四、访问harbor - web界面

192.168.168.14

账户名:admin
密码:Harbor12345 (默认大写H)

页面操作
创建一个 harbor项目
1、创建文件夹(项目),存放项目的镜像。一个项目单独一个文件夹
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

点击NEW PROJECT新建私有仓库

五、上传镜像

注意,上传的镜像必须要进行改名,改名的格式非常重要

IP地址/项目名称/镜像名称

比如:hello-world:latest 镜像 上传到 harbor项目,则格式如下

docker tag hello-world:latest 192.168.168.14/harbor/hello-world


上传步骤
1、 回到docker主机,在上传镜像时,先给镜像打标签,包含 项目 和 ip
[root@node1 ~]# docker tag hello-world:latest 192.168.168.10/harbor/hello-world

2、修改docker配置,将harbor仓库信息写入到docker的配置文件中
[root@node1 ~]# vim /usr/lib/systemd/system/docker.service
---- 修改14行成以下内容,以http的方式连接
 14 ExecStart=/usr/bin/dockerd --insecure-registry 192.168.168.10

3、修改配置文件后重启 docker 
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl restart docker

4、使用 harbor的用户名密码测试 docker能否连接上仓库
[root@node1 ~]# docker login -u admin -p Harbor12345 192.168.168.10
......
Login Succeeded		#出现此信息代表登陆成功


5、上传docker本地下载好的镜像
[root@node1 ~]# docker images   查看当前拥有的镜像
[root@node1 ~]# docker push  192.168.168.10/harbor/hello-world
The push refers to repository [192.168.168.10/harbor/hello-world]
af0b15c8625b: Pushed 
latest: digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a size: 524
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

六、拉取镜像

前期需要 docker login 192.168.168.14 IP地址,先登录harbor获取权限,才能拉取镜像

拉取镜像格式:docker pull 地址/项目名/镜像名

比如拉取nginx项目中的 nginx镜像,则命令为:

docker pull 192.168.168.14/nginx/nginx:latest`

七、集群其他主机拉取镜像

同理,也是要在其他主机的 docker.service 文件中指定 Harbor 私有仓库的 IP地址

docker login 192.168.168.14
用户名:admin
密码:Harbor12345

然后再进行 pull 私有仓库的资源:docker pull 192.168.168.14/harbor/nginx:latest
别忘了,pull完了之后使用 docker logout 192.168.168.14 取消登录,退出Harbor

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/977457
推荐阅读
相关标签
  

闽ICP备14008679号