赞
踩
harbor — 企业级docker镜像仓库
registry — docker 私有仓库 (不好用)
harbor 对 registry进行封装,功能更加完善
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 仓库之间的同步和传输
docker-compose
harbor-offline-installer-v1.6.2.tgz
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
#启动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
[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 已经安装成功了
harbor 的启动和关闭
1)启动harbor:docker-compose start
2)关闭harbor:docker-compose stop
3)重启harbor:先关闭再开启,用restart容易出错
--- 安装完 harbor之后会自动进行第一次的启动,无需再次启动
192.168.168.14
账户名:admin
密码:Harbor12345 (默认大写H)
页面操作
创建一个 harbor项目
1、创建文件夹(项目),存放项目的镜像。一个项目单独一个文件夹
点击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
前期需要 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。