docker私有仓库部署与管理

一、搭建本地公有仓库

  1.1 首先下载registry镜像

docker pull registry

  1.2 在daemon.json文件中添加私有镜像仓库地址并重新启动docker服务

vim /etc/docker/daemon.json

  1.3 运行registry容器

docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always--name registry registry:latest

  1.4 下载centos镜像

docker run centos:7 /usr/bin/bash -c ls /

  1.5 为镜像打上标签并上传到仓库

docker tag centos:7 当前IP地址:5000/centos:v1

docker push 当前IP地址:5000/centos:v1

  1.6 列出私有仓库的所有镜像以及centos镜像有哪些tag

curl http://当前IP地址:5000/v2/_catalog

curl http://当前IP地址:5000/v2/centos/tags/list

  1.7 删除centos镜像

docker images

docker rmi centos:7

docker rmi 容器ID号

    1.8 查看所有镜像查看centos是否被删除

docker images

   1.9 从仓库下载centos镜像

docker pull 192.168.10.10:5000/centos:v1

docker images


二、harbor简介

  2.1 harbor定义

    Harbor是VMware公司开源的企业级Docker Registry项目,其目标是帮助用户迅速搭建一个企业级的Docker Registry服务

    Harbor以 Docker 公司开源的Registry为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl) 、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。

  Harbor的每个组件都是以docker容器的形式构建的,使用docker-compose来对它进行部署。用于部署Harbor的docker-compose模板位于harbor/docker-compose.yml

  2.2 harbor特性

  1. 基于角色控制:用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不同的权限。
  2. 基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制(同步)。
  3. 支持LDAP/AD:Harbor 可以集成企业内部已有的 AD/LDAP(类似数据库的一张表),用于对已经存在的用户认证和管理。
  4. 镜像删除和垃圾回收:镜像可以被删除,也可以回收镜像占用的空间。
  5. 图形化用户界面:用户可以通过浏览器来浏览,搜索镜像仓库以及对项目进行管理。
  6. 审计管理:所有针对镜 像仓库的操作都可以被记录追溯,用于审计管理。
  7. 支持RESTful API:RESTful API 提供给管理员对于 Harbor 更多的操控, 使得与其它管理软件集成变得更容易。
  8. Harbor和docker registry的关系:Harbor实质上是对docker registry做了封装,扩展了自己的业务模板。

  2.3 harbor构成

    Harbor 在架构上主要有 ProxyRegistryCore servicesDatabase(Harbor-db)、Log collector(Harbor-log)、Job services六个组件。

  • proxy反向代理:通过一个前置的发现代理统一接收浏览器、docker客户端的请求,并且请求转发给后端不同的服务
  • registry:负责存储docker镜像,处理docker的pull/push命令来做上传和下载
  • core services:harbor的核心功能包括:
    • ui:提供图像界面

    • webhook:网站一些服务功能(通知机制)

    • token(令牌):提供身份验证服务

  • log collector:负责日志(其他的组件日志、上传、下载、用户、访问)收集,以供后期进行分析和健康检查
  • database:提供数据库服务,主要记录数据库镜像的元信息以及用户的身份信息
  • job services:用于镜像复制,本地镜像可以被同步到远程harbor实例上

    2.3.1 认证三种方式

  • 令牌
  • 用户密码
  • ssl

  2.4 总结

    Harbor 的每个组件都是以Docker容器的形式构建的,因此,使用Docker Compose来对它进行部署。
    总共分为7个容器运行,通过在docker-compose.yml所在目录中执行docker-compose ps命令来查看, 名称分别为:nginx、harbor-jobservice、harbor-ui、harbor-db、harbor-adminserver、registry、harbor-log。
    其中harbor-adminserver主要是作为一个后端的配置数据管理,并没有太多的其他功能。harbor-ui所要操作的所有数据都通过harbor-adminserver这样一个数据配置管理中心来完成。

解释:adminserver(管理员):用于管理用户操作以及身份认证等

  2.5 harbor实验部署

  2.5.1 前期准备

IP地址服务
harbor服务器192.168.10.9docker-ce、docker-compose、harbor-offline-v1.2.2
client客户端192.168.10.7docker-ce

  2.5.2 在harbor实验部署

curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker-compose --version

  2.5.3 服务端部署harbor服务

  2.5.3.1 下载harbor压缩包并解压到指定位置

cd /opt/

将harbor-offline-installer-v1.2.2.tgz和docker-compose-1.25.0转移到当前xshell下

tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/

或者tar xf harbor-offline-installer-v1.2.2.tgz -C /usr/local/

mv docker-compose-1.25.0 /usr/local/bin

  2.5.3.2 修改harbor安装的配置文件

    在配置文件下修改您当前harbor服务器的IP地址

cd /usr/local/harbor

vim /usr/local/harbor/harbor.cfg

  2.5.3.3 启动harbor服务

cd /usr/local/harbor/

./prepare

./install.sh

  2.5.3.4 查看harbor启动的镜像

docker-compose ps

  2.5.3.5 网页登录harbor

    请输入您的IP地址/harbor,然后输入用户名和密码登入harbor

  2.5.3.6 创建一个项目

    点击项目,新建项目输入项目名称,查看项目名称

  2.5.3.7 登录harbor

docker login -u admin -p Harbor12345 http://127.0.0.1

或者  docker login -u admin -p Harbor12345 http://您当前的本机地址

  2.5.3.8 下载nginx

docker pull nginx

  2.5.3.9 为镜像打上标签

docker tag nginx:latest 127.0.0.1/myproject-xxx/nginx:v1

或者docker tag nginx:latest 您的IP地址/mysproejct-xxx/nginx-v1

docker images

  2.5.3.10 上传镜像到仓库

docker push 127.0.0.1/myproject-xxx/nginx:v1

  2.5.3.11 查看是否传送到仓库中

  2.5.4 客户端操作

  2.5.4.1 登录harbor仓库

docker login -u admin -p Harbor12345 http://您harbor服务器的IP地址

  2.5.4.1.1 解决方式一

    在/usr/lib/systemd/system/docker.service里编辑

vim /usr/lib/sysetmd/system/docker.service

  2.5.4.1.2 解决方式二

    在daemon.json里进行编辑

vim /etc/docker/daemon.json

  2.5.4.2 重新启动服务,再次登录harbor

systemctl daemon-reload

systemctl restart docker

docker login -u admin -p Harbor12345 http://您当前Harbor服务器的IP地址

  2.5.4.3 仓库下载镜像并查看

docker pull 您当前harbor服务器的IP地址/myproject-xxx/nginx:v1

docker images

  2.5.4.4 仓库下载tomcat

docker pull tomcat

  2.5.4.5 标签镜像同时上传到仓库,查看网页仓库是否上传成功

docker tag tomcat:latest 您当前harbor服务器的IP地址/myproject-xxx/tomcat:v2

docker push 您当前harbor服务器的IP地址/myproject-xxx/tomcat:v2

  2.5.5 维护管理harbor仓库

  2.5.5.1 创建用户

  2.5.5.2 添加项目成员

   点击成员,新建仓库

  2.5.5.3 客户端上使用普通账户操作镜像
  2.5.5.3.1 删除tomcat:v2镜像,退出harbor,然后再次用新密码登录harbor

docker rmi 您当前harbor服务器的IP地址/myproject-xxx/tomcat:v2

docker images

docker logout 您harbor服务器的IP地址

docker login -u admin -p Harbor12345 http://您当前harbor服务器的IP地址

  2.5.5.3.2 上传tomcat:v3镜像,同时在网页仓库查看

docker push 您当前harbor服务器的IP地址/myproject-xxx/tomcat:v3

  2.5.5.4 查看日志信息

  2.5.5.5 修改Harbor.cfg配置文件
  2.5.5.5.1 删除docker-compose

cd /usr/local/harbor/

docker-compose down -v

  2.5.5.5.2 重新生成文件

./prepare

  2.5.5.5.3  启动并运行容器

docker-compose up -d

  2.5.5.6 移除Harbor服务容器同时保留镜像数据/数据库,同时进行迁移
  2.5.5.6.1 删除docker-compose

docker-compose down -v

  2.5.5.6.2 查看数据

ls /data/registry/docker/registry/v2/repositories/myproject-xxx/

cd /data/registry/docker/registry/v2/repositories/myproject-xxx/

ls

  2.5.5.6.3 打包镜像数据

tar zcvf xxx-registry.tar.gz ./* 

  2.5.5.6.4 备份内容

ls

cd /usr/local/harbor/

mv /data/registry/docker/registry/v2/repositories/myproject-xxx/xxx-registry.tar.gz /opt/

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将Docker仓库私有部署,你可以考虑使用Docker Registry来实现。Docker Registry是一个存储、分发和管理Docker镜像的服务器端应用程序。 以下是一些步骤来部署私有Docker Registry: 1. 安装Docker Registry:首先,在你想要部署Docker Registry的服务器上安装Docker。然后,使用以下命令来拉取并运行官方的Docker Registry镜像: ``` docker run -d -p 5000:5000 --restart=always --name registry registry:2 ``` 这将在端口5000上启动一个私有Docker Registry。 2. 配置防火墙规则:如果你的服务器上有防火墙,确保允许通过5000端口的流量。 3. 配置TLS证书(可选):如果你希望通过HTTPS访问私有Docker Registry,你需要为Registry配置TLS证书。你可以使用自签名证书或购买一个有效的证书。将证书和私钥放置在适当的位置,并在Docker Registry的启动命令中指定证书路径。 4. 配置客户端:在需要使用私有Docker Registry的机器上,你需要配置Docker客户端以允许与私有Registry通信。编辑或创建`/etc/docker/daemon.json`文件,并添加以下内容: ``` { "insecure-registries": ["your-registry-domain:5000"] } ``` 将`your-registry-domain`替换为你的Docker Registry的域名或IP地址。 5. 重启Docker服务:在配置完客户端后,重启Docker服务以使更改生效: ``` systemctl restart docker ``` 6. 推送和拉取镜像:现在,你可以使用`docker push`和`docker pull`命令将镜像推送到和从私有Docker Registry拉取镜像。 这样,你就成功地将Docker仓库私有部署了。请注意,这只是一个基本的示例,你可以根据自己的需求进行更高级的配置和管理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值