搭建Docker私有仓库管理本地的Docker镜像,通过harbor实现Web UI访问和管理私有仓库

要在本地搭建一个Docker私有仓库,你可以按照以下步骤进行设置:

  1. 安装Docker
    确保你已经安装了Docker。如果还没有安装,可以按照官方指南进行安装:
  • 对于Ubuntu系统,你可以运行以下命令来安装Docker:

    sudo apt-get update
    sudo apt-get install -y docker.io
    

如果无法下载,可参考前一篇文章
解决国内docker镜像无法访问下载,使用清华源docker ce
2. 启动Docker服务
确保Docker服务已经启动:

sudo systemctl start docker
sudo systemctl enable docker
  1. 拉取官方的Docker Registry镜像
    Docker提供了一个官方的registry镜像,可以用来搭建私有仓库。你可以使用以下命令拉取这个镜像:
sudo docker pull registry:2

如果出现连接超时,可以尝试

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://do.nark.eu.org","https://dc.j8.work","https://docker.m.daocloud.io","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  1. 启动私有仓库
    你可以使用以下命令来启动一个简单的私有仓库:
sudo docker run -d -p 5000:5000 --name my-registry registry:2

这个命令会在本地启动一个私有仓库,并将其映射到主机的5000端口。

  1. 推送镜像到私有仓库
    要将镜像推送到你的私有仓库,你首先需要给镜像打上标签,以便它指向私有仓库。

假设你有一个名为my-image的镜像,你可以使用以下命令为其打标签:

sudo docker tag my-image localhost:5000/my-image

然后,你可以将这个镜像推送到你的私有仓库:

sudo docker push localhost:5000/my-image
  1. 从私有仓库拉取镜像
    你可以使用以下命令从私有仓库中拉取镜像:
sudo docker pull localhost:5000/my-image
  1. 配置持久化存储(可选)
    默认情况下,Docker Registry的数据是存储在容器内部的,如果容器被删除,数据也会丢失。你可以通过挂载一个持久化存储卷来避免数据丢失:
sudo docker run -d -p 5000:5000 --name my-registry \-v /path/to/your/data:/var/lib/registry \registry:2

其中/path/to/your/data是你希望存储数据的本地路径。

  1. 配置认证和安全(可选)
    如果你希望为你的私有仓库添加认证或使用HTTPS,你可以进一步配置Docker Registry。可以参考Docker官方文档进行详细的设置。

这样,你就可以在本地成功搭建一个Docker私有仓库,并通过该仓库管理你的Docker镜像。

要通过Web端访问Docker私有仓库,你需要执行以下步骤:

1. 搭建Docker私有仓库

你应该已经完成了这一步,但作为确认,这里是搭建私有仓库的简单步骤:

docker run -d -p 5000:5000 --name registry registry:2

2. 配置Nginx或Apache作为反向代理

为了通过Web浏览器访问Docker私有仓库,你可以配置Nginx或Apache作为反向代理,这样可以提供一个友好的URL并且支持HTTPS。

使用Nginx作为反向代理
  1. 安装Nginx:

    sudo apt-get update
    sudo apt-get install nginx
    
  2. 配置Nginx:
    创建一个新的配置文件,例如/etc/nginx/sites-available/docker-registry,内容如下:

    server {listen 80;server_name your.registry.domain.com;location / {proxy_pass http://localhost:5000;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
    }
    

    重要: 如果你使用HTTPS,配置中的listen 80;需要改成listen 443 ssl;,并添加SSL证书的相关配置。

  3. 启用配置并重启Nginx:

    sudo ln -s /etc/nginx/sites-available/docker-registry /etc/nginx/sites-enabled/
    sudo systemctl restart nginx
    

3. 访问私有仓库的Web UI

  1. 访问Docker私有仓库的Web界面:

    如果你需要一个带有Web UI的Docker仓库,可以考虑使用第三方工具,如Portus或Harbor。

    • Portus: 提供身份验证和授权的功能,并支持浏览和管理Docker仓库中的镜像。
    • Harbor: 一个企业级的Docker注册表服务器,可以提供UI,RBAC,审计日志和镜像复制等功能。
  2. 安装Harbor:

    如果选择Harbor,安装步骤如下:

    • 下载并解压Harbor:

      wget https://github.com/goharbor/harbor/releases/download/v2.5.3/harbor-online-installer-v2.5.3.tgz
      tar xvf harbor-online-installer-v2.5.3.tgz
      cd harbor
      sudo apt-get update
      sudo apt-get install docker-compose-plugin

      online模式如果出现无法下载更新,可以选择下载离线包

      wget https://github.com/goharbor/harbor/releases/download/v2.11.1/harbor-offline-installer-v2.11.1.tgz
      
    • 配置Harbor:

      修改harbor.yml文件,设置主机名和其他相关配置。

      hostname: 192.168.1.1
      http:
      port: 8080

    • 启动Harbor:

      ./prepare
      ./install.sh
      
    • 访问Harbor:

      通过Web浏览器访问https://192.168.1.1:8080,Harbor会提供一个完整的UI供你管理Docker镜像。

在这里插入图片描述

4. 配置Docker客户端

配置Docker客户端,使其能够推送和拉取来自私有仓库的镜像。如果你设置了HTTPS,确保Docker客户端能够信任你的证书。

docker login your.registry.domain.com

这样,你就可以通过Web端访问和管理你的Docker私有仓库了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1527361.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【前端】animation动画以及利用vue制作简单的透明度改变动画,包含vue生命周期实现

一. 问题描述 想做一个文字透明度从1到0然后再从0到1的css动画。 二. 代码写法 2.1 animation写法 2.1.1 animation属性key 2.1.2 代码展示 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"…

利士策分享,逆境破局关键:精准策略

利士策分享&#xff0c;逆境破局关键&#xff1a;精准策略 在人生的征途上&#xff0c;逆境如同试炼场&#xff0c;考验着我们的智慧与勇气。 为了在这片试炼场上稳健前行&#xff0c;我们需要一套具体而精准的应对策略。 以下&#xff0c;是结合实践经验与智慧总结的应对策略…

【环境领域EI稳定 I 院士主讲】第九届能源与环境研究进展国际学术会议(ICAEER 2024)

ICAEER 2024会议投稿经过2-3位组委会专家严格审核之后&#xff0c;符合Springer ESE征稿要求的论文将由斯普林格&#xff08;Springer-Nature&#xff09;旗下的 Environmental Science and Engineering (ISSN: 1863-5520) 出版&#xff0c;出版后提交至EI Compendex&#xff…

最新SMS测压SMS源码 全新版本

php调至7.3 设置伪静态为thinkphp 设置网站运行目录为public 编辑根目录下的.env文件配置数据库信息 详细教程请看源码内置说明文本&#xff01; 亲测截图&#xff01;真实有效&#xff01; 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/8972239…

如何通过食堂采购小程序端降低成本,提升效率?

随着数字化管理工具的普及&#xff0c;越来越多的食堂正在引入小程序来优化采购流程&#xff0c;减少成本和提升效率。食堂采购小程序端通过技术手段实现了自动化、智能化的管理方式&#xff0c;为管理者提供了极大的便利。本文将探讨如何利用技术手段开发一个高效的食堂采购小…

【鸿蒙HarmonyOS NEXT】页面之间相互传递参数

【鸿蒙HarmonyOS NEXT】页面之间相互传递参数 一、环境说明二、页面之间相互传参 一、环境说明 DevEco Studio 版本&#xff1a; API版本&#xff1a;以12为主 二、页面之间相互传参 说明&#xff1a; 页面间的导航可以通过页面路由router模块来实现。页面路由模块根据页…

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文&#xff5c;华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节&#xff0c;Flexus X实例的促销力度非常大&#xff0c;特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求&#xff0c;一定…

打造可视化数据大屏供应链管理平台:基于食堂采购系统源码的开发方案

食堂采购系统作为供应链管理的一个关键组成部分&#xff0c;通过集成可视化数据大屏&#xff0c;可以有效提升采购和供应链各环节的管理效率。在本文中&#xff0c;我们将探讨如何基于食堂采购系统源码&#xff0c;开发一个高效的可视化数据大屏供应链管理平台。 一、可视化数据…

Java数组(详解版)

数组的定义&#xff1a; 什么是数组&#xff1a; 数组&#xff1a;可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。 1. 数组中存放的元素其类型相同 2. 数组的空间是连在一起的 3. 每个空间有自己的编号&#xff0c;其实位置的编号为 0 &#xff0c;即数组…

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_search函数&…

review——C++中的右值引用

目录 前言 一、什么是左值、什么是右值 二、右值引用 1.右值引用与右值引用的一些性质 2.解释一下左值引用与右值应用于程序员之间的关系 3.右值引用与移动语义 4.右值引用右值后变成左值的必要性与完美转发 1.右值引用引用右值后变为左值属性的必要性 2.完美转发 Ⅰ…

【机器人工具箱Robotics Toolbox开发笔记(十二)】 机器人运动轨迹规划

​在机器人学中&#xff0c;机器人的运动轨迹是其各关节在三维空间中随时间变化的位置、速度和加速度的综合表现。针对这些运动轨迹&#xff0c;主要关注三个方面&#xff1a; 轨迹规划&#xff1a;根据具体的操作任务&#xff0c;为机器人设计并指定一条在空间中合理且高效的移…

无人机飞手执照:模拟训练技术详解

随着无人机技术的飞速发展&#xff0c;其在航拍、农业、物流、救援等多个领域的应用日益广泛&#xff0c;对无人机飞手的技能与安全意识要求也随之提高。为了确保无人机操作的安全性与效率&#xff0c;获取无人机飞手执照成为专业从业者不可或缺的步骤。模拟训练作为执照考取过…

简单实用的php全新实物商城系统

免费开源电商系统,提供灵活的扩展特性、高度自动化与智能化、创新的管理模式和强大的自定义模块,让电商用户零成本拥有安全、高效、专业的移动商城。 代码是全新实物商城系统源码版。 代码下载

【Redis】Redis 集群搭建与管理: 原理、实现与操作

目录 集群 (Cluster)基本概念数据分片算法哈希求余⼀致性哈希算法哈希槽分区算法 (Redis 使⽤) 集群搭建 (基于 docker)第⼀步: 创建⽬录和配置第⼆步: 编写 docker-compose.yml第三步: 启动容器第四步: 构建集群 主节点宕机演⽰效果处理流程1)故障判定2)故障迁移 集群扩容第⼀…

每日一题,力扣leetcode Hot100之238.除自身以外数组的乘积

乍一看这个题很简单&#xff0c;但是不能用除法&#xff0c;并且在O(N)时间复杂度完成或许有点难度。 考虑到不能用除法&#xff0c;如果我们要计算输出结果位置i的值&#xff0c;我们就要获取这个位置左边的乘积和右边的乘积&#xff0c;那么我新设立两个数组L和R。 对于L来…

【Python 千题 —— 算法篇】寻找两个正序数组的中位数

Python 千题持续更新中 …… 脑图地址 &#x1f449;&#xff1a;⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目背景 在处理大规模数据时&#xff0c;我们经常需要对数据进行排序和分析。一个常见问题是如何高效地从两个正序数组中找出它们的中位数。…

【python】图书管理系统

要运行这个图书管理系统程序&#xff0c;请按照以下步骤操作&#xff1a; 确保您的电脑上已安装Python。Windows 11通常预装了Python&#xff0c;但如果没有&#xff0c;你可以从Python官网&#xff08;https://www.python.org/downloads/&#xff09;下载并安装。 将代码保存为…

C++:红黑树的深度剖析和模拟

✨✨✨学习的道路很枯燥&#xff0c;希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一 红黑树的概念 二 红黑树的性质 三 红黑树节点的定义 四 红黑树结构 五 红黑树的插入操作 六 红黑树的验证 七 红黑树的删除 八 红黑树与AVL树的比较 九 红黑树的迭代器 十…

【简单】 猿人学web第一届 第19题 乌拉乌拉

数据接口分析 数据接口为 https://match.yuanrenxue.cn/api/match/19 请求参数只需要携带 页码 cookie 只需要携带 sessionid 请求参数 和 cookie 都没有加密字段&#xff0c;直接用 python 请求 请求失败了 查看协议是 h2 的&#xff0c;再试试 httpx 请求 还是一样的结果…