Docker 镜像仓库 harbor

Docker 镜像仓库 harbor

本地镜像上传到官方仓库

#将自制的镜像上传至 docker 仓库;https://hub.docker.com/

1,登录到 docker hub官网创建账户,创建一个shi仓库
2,docker login docker.io   #登录
3,cat /root/.docker/config.json  #查看认证消息
4,docker tag alpine shi/alpine  #为镜像做标记
5,docker push shi/alpine  #上传到官方镜像库
6,官网点击 Repositories 查看

Docker 仓库之单机 Docker Registry

官方文档地址:https://docs.docker.com/registry/
官方 github 地址:https://github.com/docker/distribution

Docker Registry 作为 Docker 的核心组件之一负责镜像内容的存储与分发,客户端的 docker pull 以及 push 命令都将直接与 registry 进行交互

#通过官方提供的docker registry镜像来简单搭建一套本地私有仓库环境
docker pull registry   #下载registry镜像
mkdir -pv /opt/docker/auth   #创建一个授权使用目录
cd /opt/docker/auth/
docker run --entrypoint htpasswd registry -Bbn yun 123456 > htpasswd #创建用户
#启动registry创建容器
docker run -d -p 5000:5000 --restart=always --name registry1 -v /opt/docker/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd registry
docker ps  #验证容器开启端口
vim /etc/docker/daemon.json 
{  
   "insecure-registries":["10.0.0.3:5000"]
}  
   {   "registry-mirrors": ["https://es5ynw9q.mirror.aliyuncs.com"]
}

systemctl restart docker 
docker login 10.0.0.3:5000  #测试登录仓库,登录成功
docker tag centos:centos7  shi/centos7  #为镜像做标记
docker tag shi/centos7 10.0.0.3:5000/shi/centos7  #做网页标记
docker push 10.0.0.3:5000/shi/centos7   #上传镜像

docker login 10.0.0.3:5000  #登录仓库
docker pull 10.0.0.3:5000/shi/centos7  #从仓库下载镜像
docker run -it 10.0.0.3:5000/shi/centos7 bash #从下载的镜像启动容器

Docker 仓库之分布式 Harbor
harbor 官方网址:https://goharbor.io/

Harbor是一个用于存储和分发Docker镜像的企业级Registry 服务器,由vmware开源,其通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution

Harbor 功能官方介绍
1,图像化管理界面
2,基于角色的访问控制
3,审计管理:所有针对镜像仓库的操作都可以被记录追溯
4,国际化:已拥有英文、中文、德文、日文和俄文的本地化版本
5,RESTful API - RESTful API:提供给管理员对于 Harbor 更多的操控
6,部署简单:提供在线和离线两种安装工具
7,镜像复制:镜像可以在多个 Registry 实例中同步

安装 Harbor

下载地址:https://github.com/vmware/harbor/releases
安装文档:https://github.com/vmware/harbor/blob/master/docs/installation_guide.md

#server1安装harbor
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-compose
tar xvf harbor-offline-installer-v1.10.1.tgz -C /opt/
cd /opt/harbor/
vim harbor.yml   #注释https信息
hostname: 10.0.0.7 
http:
  port: 80
harbor_admin_password: 123456

./install.sh
ss -ntal   #查看端口
docker-compose stop    #停止harbor服务
docker-compose start   #开启harbor服务
docker images  #查看镜像
 浏览器访问10.0.0.7 登录
    admin  123456
 创建管理项目 yun 为公开

#客户端配置 10.0.0.3 允许上传镜harbor
vim /etc/docker/daemon.json
 {
  "registry-mirrors": ["https://es5ynw9q.mirror.aliyuncs.com" ],
  "insecure-registries":["10.0.0.7:80" ]
 }  
systemctl restart docker
docker pull nginx
docker login 10.0.0.7:80
#修改images 的名称,不修改成指定格式无法将镜像上传到harbor仓库
  格式: HarborIP/项目名/image 
docker tag nginx 10.0.0.7:80/yun/nginx
docker push 10.0.0.7:80/yun/nginx   #上传镜像
#刷新10.0.0.7web界面,验证yun项目下nginx镜像信息


#从harbor服务器下载镜像
凡是需要从 harbor 镜像服务器下载或上传image 的 docker 服务都要更改
vim /etc/docker/daemon.json   
 {
  "registry-mirrors": ["https://es5ynw9q.mirror.aliyuncs.com" ],
  "insecure-registries":["10.0.0.7:80" ]
 }
systemctl restart docker
docker pull 10.0.0.7:80/yun/nginx:latest  #下载镜像
docker run -it -p 80:80 10.0.0.7:80/yun/nginx  #启动容器
curl 10.0.0.3  #访问测试

harbor 高可用实现

Harbor 支持基于策略的 Docker 镜像复制功能,这类似于 MySQL 的主从同步,其可以实现不同的数据中心同步镜像,并提供管理界面,已经有很多互联网公司使用harbor搭建内网 docker 仓库的案例,并且实现了双向复制的案列

#新添加一个harbor服务器
yum install -y docker-ce python-pip docker-compose
systemctl enable --now docker
tar xvf harbor-offline-installer-v1.10.1.tgz -C /opt/
cd /opt/harbor/
vim harbor.yml   #注释https信息
hostname: 10.0.0.17
http:
  port: 80
harbor_admin_password: 123456
./install.sh
ss -ntal   #查看端口
docker-compose stop    #停止harbor服务
docker-compose start   #开启harbor服务
浏览器访问10.0.0.17
1,登录 admin  123456
2,创建管理项目 yun 为公开
3,仓库管理:添加目标--提供者:harbor 目标名:yun 目标URL:10.0.0.7 访问ID与密码
4,测试连接成功后创建
5,复制管理:新建规则--名称:yun-backup  目的Registry:10.0.0.7  触发模式:事件驱动
6,在10.0.0.7 重复上面5布操作 #注意IP地址需要修改
7,docker tag centos 10.0.0.7:80/yun/centos
8,docker push 10.0.0.7:80/yun/centos #上传镜像到10.0.0.7
9,刷新10.0.0.17web界面,查看复制管理,镜像同步到了10.0.0.17
10,删除10.0.0.17的镜像,此时10.0.0.7的镜像也被删除

#修改docker配置文件下载10.0.0.17的镜像
vim /etc/docker/daemon.json
 {
  "registry-mirrors": ["https://es5ynw9q.mirror.aliyuncs.com" ],
  "insecure-registries":["10.0.0.17:80" ]
 } 
systemctl restart docker
docker login 10.0.0.17:80 
docker pull 10.0.0.17:80/yun/centos:latest #下载镜像

#添加HAproxy负载均衡配置
vim /etc/haproxy/haproxy.cfg 
listen images-80
   bind 10.0.0.100:80
   balance source
   mode http
   server 10.0.0.7  10.0.0.7:80  check
   server 10.0.0.17 10.0.0.17:80 chekc 

vim /etc/docker/daemon.json   #所有docker节点配置
 {
  "registry-mirrors": ["https://es5ynw9q.mirror.aliyuncs.com" ],
  "insecure-registries":["10.0.0.100:80" ]
 } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值