当前位置: 首页 > news >正文

【Docker】私有Docker仓库的搭建

一、准备工作

确保您的系统已安装Docker。如果没有安装,请参考Docker官方文档进行安装。
准备一个用于存储仓库数据的目录,例如/registry_data/。

二、拉取官方registry镜像

首先,我们需要从Docker Hub拉取官方的registry镜像。执行以下命令:

docker pull registry

三、启动私有Docker仓库

接下来,我们使用以下命令启动私有仓库:

docker run -d -p 5000:5000 -v /registry_data/:/var/lib/registry --privileged=true registry

该命令的含义如下:
-d:后台运行容器。
-p 5000:5000:将容器的5000端口映射到宿主机的5000端口。
-v /registry_data/:/var/lib/registry:将宿主机的/registry_data/目录挂载到容器的/var/lib/registry目录,用于存储仓库数据。
--privileged=true:赋予容器扩展权限。

四、配置用户认证

为了确保私有仓库的安全性,我们可以为仓库设置密码认证。如果需要,以下是如何生成密码文件并配置用户认证的步骤:

生成密码文件

首先,使用htpasswd命令生成密码文件htpasswd:

htpasswd -Bc htpasswd <username>

输入密码后,用户信息将被存储到htpasswd文件中。

添加更多用户

如果需要添加更多用户,可以使用以下命令:

htpasswd -B htpasswd <username2>
启动带用户认证的私有仓库

运行以下命令:

docker run -d \-p 5000:5000 \-v /registry_data/:/var/lib/registry \-v /htpasswd:/auth/htpasswd \-e "REGISTRY_AUTH=htpasswd" \-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \--privileged=true \registry

-e "REGISTRY_AUTH=htpasswd":
-REGISTRY_AUTH 环境变量用于指定容器应该使用哪种认证方式。在这个例子中,htpasswd 表示将使用基本认证(HTTP基本认证),这是通过 .htpasswd 文件实现的,该文件包含用户名和加密后的密码。

-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm":
REGISTRY_AUTH_HTPASSWD_REALM 环境变量定义了认证时的 Realm,这通常显示在认证对话框中,告知用户他们正在登录哪个服务。在这个例子中,Realm 被设置为 “Registry Realm”。

-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd":
REGISTRY_AUTH_HTPASSWD_PATH 环境变量指定了 .htpasswd 文件的路径,该文件包含用户认证信息。在这个例子中,.htpasswd 文件被挂载到容器内的 /auth/htpasswd 路径。

五、配置Docker守护进程

为了让Docker客户端能够访问私有仓库,我们需要将仓库地址添加到Docker的daemon.json文件中。执行以下命令:

{"insecure-registries": ["<your-repo-domain>:<your-repo-port>"]
}

其中,和分别替换为您的私有仓库域名和端口。
修改完成后,重载Docker:

systemctl reload docker

至此,私有Docker仓库搭建完成,您可以使用以下命令进行登录和推送镜像:
最后,我们使用以下命令启动带用户认证的私有仓库:

docker login <your-repo-domain>:<your-repo-port>
docker tag <image-name> <your-repo-domain>:<your-repo-port>/<image-name>
docker push <your-repo-domain>:<your-repo-port>/<image-name>

以上就是搭建私有Docker仓库的详细步骤,希望对您有所帮助!

相关文章:

【Docker】私有Docker仓库的搭建

一、准备工作 确保您的系统已安装Docker。如果没有安装&#xff0c;请参考Docker官方文档进行安装。 准备一个用于存储仓库数据的目录&#xff0c;例如/registry_data/。 二、拉取官方registry镜像 首先&#xff0c;我们需要从Docker Hub拉取官方的registry镜像。执行以下命…...

linux 管道符、重定向与环境变量

1. 输入输出重定向 在linux工作必须掌握的命令一文中&#xff0c;我们已经掌握了几乎所有基础常用的Linux命令&#xff0c;那么接下来的任务就是把多个命令适当的组合到一起&#xff0c;使其协同工作&#xff0c;会更高效的处理数据&#xff0c;做到这一点就必须搞清楚命令的输…...

Ansible fetch模块详解:轻松从远程主机抓取文件

在自动化运维的过程中&#xff0c;我们经常需要从远程主机下载文件到本地&#xff0c;以便进行分析或备份。Ansible的fetch模块正是为了满足这一需求而设计的&#xff0c;它可以帮助我们轻松地从远程主机获取文件&#xff0c;并将其保存到本地指定的位置。在这篇文章中&#xf…...

wireshark工具简介

目录 1 wireshark介绍 2 wireshark抓包流程 2.1 选择网卡 2.2 停止抓包 2.3 保存数据 3 wireshark过滤器设置 3.1 显示过滤器的设置 3.2 抓包过滤器 4 wireshark的封包列表与封包详情 4.1 封包列表 4.2 封包详情 参考文献 1 wireshark介绍 wireshark是非常流行的网络…...

51单片机——按键控制LED流水灯

引言 在电子制作和嵌入式系统学习中&#xff0c;51 单片机是一个经典且入门级的选择。按键控制 LED 流水灯是 51 单片机的一个基础应用&#xff0c;通过这个实例&#xff0c;我们可以深入了解单片机的输入输出控制原理。 51 单片机简介 51 单片机是对所有兼容 Intel 8051 指…...

【opencv】第9章 直方图与匹配

第9章 直方图与匹配 9.1 图像直方图概述 直方图广泛运用于很多计算机视觉运用当中&#xff0c;通过标记帧与帧之间显著的边 缘和颜色的统计变化&#xff0c;来检测视频中场景的变化。在每个兴趣点设置一个有相近 特征的直方图所构成“标签”,用以确定图像中的兴趣点。边缘、色…...

HTML5 Web Worker 的使用与实践

引言 在现代 Web 开发中&#xff0c;用户体验是至关重要的。如果页面在执行复杂计算或处理大量数据时变得卡顿或无响应&#xff0c;用户很可能会流失。HTML5 引入了 Web Worker&#xff0c;它允许我们在后台运行 JavaScript 代码&#xff0c;从而避免阻塞主线程&#xff0c;保…...

MVCC底层原理实现

MVCC的实现原理 了解实现原理之前&#xff0c;先理解下面几个组件的内容 1、 当前读和快照读 先普及一下什么是当前读和快照读。 当前读&#xff1a;读取数据的最新版本&#xff0c;并对数据进行加锁。 例如&#xff1a;insert、update、delete、select for update、 sele…...

基于ESP32-IDF驱动GPIO输出控制LED

基于ESP32-IDF驱动GPIO输出控制LED 文章目录 基于ESP32-IDF驱动GPIO输出控制LED一、点亮LED3.1 LED电路3.2 配置GPIO函数gpio_config()原型和头文件3.3 设置GPIO引脚电平状态函数gpio_set_level()原型和头文件3.4 代码实现并编译烧录 一、点亮LED 3.1 LED电路 可以看到&#x…...

【优选算法】9----长度最小的子数组

----------------------------------------begin-------------------------------------- 铁子们&#xff0c;前面的双指针算法篇就算告一段落啦~ 接下来是我们的滑动窗口篇&#xff0c;不过有一说一&#xff0c;算法题就跟数学题一样&#xff0c;只要掌握方法&#xff0c;多做…...

LabVIEW太阳能照明监控系统

在公共照明领域&#xff0c;传统的电力照明系统存在高能耗和维护不便等问题。利用LabVIEW开发太阳能照明监控系统&#xff0c;通过智能控制和实时监测&#xff0c;提高能源利用效率&#xff0c;降低维护成本&#xff0c;实现照明系统的可持续发展。 ​ 项目背景 随着能源危机…...

MongoDB中单对象大小超16M的存储方案

在 MongoDB 中&#xff0c;单个文档的大小限制为 16MB。如果某个对象&#xff08;文档&#xff09;的大小超过 16MB&#xff0c;可以通过以下几种方案解决&#xff1a; 1. 使用 GridFS 适用场景&#xff1a;需要存储大文件&#xff08;如图像、视频、文档等&#xff09;。 原…...

三维激光扫描-用智能检测系统提升效率

当下&#xff0c;企业对生产效率和质量控制的要求越来越高。传统的检测方法往往难以满足高精度、快速响应的需求。三维激光扫描技术结合智能检测系统&#xff0c;为工业检测带来了革命性的变革。 传统检测方法的局限性 传统检测方法主要依赖于人工测量和机械检测工具&#xf…...

css遇到的一些问题

1.vw单位&#xff0c;在PC端vw单位是包含右侧滚轮的宽度&#xff0c;而在移动端不会包含滚轮的长度&#xff0c;在PC端运用vw单位进行居中对齐&#xff0c;会比实际偏左盒子偏右一点&#xff0c;因为内容区域并不包含滚轮。 2.运用媒体查询进行响应式布局式&#xff0c;媒体查询…...

【langgraph】ubuntu安装:langgraph:未找到命令

langgraph 在ubuntu24.04 参考:langgraph运行:报错: (05_ep_dev) root@k8s-master-pfsrv:/home/zhangbin/perfwork/01_ai/05_ep_dev/expert# langgraph dev langgraph:未找到命令查看langraph的安装情况 pip show langgraph...

mysql 学习2 MYSQL数据模型,mysql内部可以创建多个数据库,一个数据库中有多个表;表是真正放数据的地方,关系型数据库 。

在第一章中安装 &#xff0c;启动mysql80 服务后&#xff0c;连接上了mysql&#xff0c;那么就要 使用 SQL语句来 操作mysql数据库了。那么在学习 SQL语言操作 mysql 数据库 之前&#xff0c;要对于 mysql数据模型有一个了解。 MYSQL数据模型 在下图中 客户端 将 SQL语言&…...

小识JVM堆内存管理的优化机制TLAB

JVM&#xff08;Java虚拟机&#xff09;在堆内存分配空间时&#xff0c;TLAB&#xff08;Thread Local Allocation Buffer&#xff0c;线程本地分配缓存区&#xff09;是一种重要的内存管理优化技术。以下是对TLAB的详细解释&#xff1a; 一、TLAB的定义 TLAB是JVM堆内存管理…...

ToDesk云电脑、顺网云、网易云、易腾云、极云普惠云横测对比:探寻电竞最佳拍档

一、云电脑&#xff1a;电竞新宠崛起 在电竞游戏不断发展的今天&#xff0c;硬件性能成为了决定游戏体验的关键因素。为了追求极致的游戏画面与流畅度&#xff0c;玩家们往往需要投入大量资金购置高性能电脑。然而&#xff0c;云电脑技术的出现&#xff0c;为玩家们提供了一种…...

学习ASP.NET Core的身份认证(基于JwtBearer的身份认证10)

基于Cookie传递token的主要思路是通过用户身份验证后&#xff0c;将生成的token保存到Response.Cookies返回客户端&#xff0c;后续客户端访问服务接口时会自动携带Cookie到服务端以便验证身份。之前一直搞不清楚的是服务端程序如何从Cookie读取token进行认证&#xff08;一般都…...

vscode环境中用仓颉语言开发时调出覆盖率的方法

在vscode中仓颉语言想得到在idea中利用junit和jacoco的覆盖率&#xff0c;需要如下几个步骤&#xff1a; 1.在vscode中搭建仓颉语言开发环境&#xff1b; 2.在源代码中右键运行[cangjie]coverage. 思路1&#xff1a;编写了测试代码的情况&#xff08;包管理工具&#xff09; …...

手把手教你用MCP+Selenium打造专属内容发布机器人(附避坑指南)

从零构建MCPSelenium自动化发布系统的实战指南 在当今内容为王的数字时代&#xff0c;如何高效管理多平台内容发布成为创作者和企业的核心需求。本文将带您深入探索如何利用MCP协议与Selenium技术栈&#xff0c;打造一个高度定制化的自动化内容发布系统&#xff0c;特别针对小红…...

深入解析Python中ort.InferenceSession的底层实现与性能优化

1. 揭开ort.InferenceSession的神秘面纱 第一次接触ort.InferenceSession时&#xff0c;我完全被它的性能震惊了。作为一个用Python加载ONNX模型的标准入口&#xff0c;它看起来就是个普通的类实例化操作&#xff0c;但背后却隐藏着C和Python的完美协作。这种设计让开发者既能享…...

Omni-Vision Sanctuary 网络协议分析辅助:可视化网络数据包与流量模式识别

Omni-Vision Sanctuary 网络协议分析辅助&#xff1a;可视化网络数据包与流量模式识别 1. 网络数据可视化的新思路 网络工程师每天面对海量的数据包和流量日志&#xff0c;传统的分析工具往往需要依赖复杂的命令行操作和专业图表解读。而Omni-Vision Sanctuary模型为我们提供…...

【GitHub项目推荐--Godogen:一句话生成完整 Godot 游戏的 AI 流水线】⭐⭐⭐

简介 Godogen​ 是一套基于 Claude Code​ 构建的自动化游戏开发流水线。它不仅仅是一个代码生成器&#xff0c;更是一个全栈的“AI 开发团队”&#xff1a;你只需用自然语言描述游戏创意&#xff0c;它便能自动完成架构设计、美术生成、代码编写、引擎截图、视觉质检的全流程…...

宇树机器狗Go2仿真入门:Gazebo环境下Gmapping建图全流程(附避坑指南)

宇树机器狗Go2仿真实战&#xff1a;Gazebo环境下的Gmapping建图与避坑指南 当四足机器人遇上SLAM技术&#xff0c;会碰撞出怎样的火花&#xff1f;宇树科技&#xff08;Unitree&#xff09;推出的Go2机器狗凭借其灵活的机动性和开源控制系统&#xff0c;已成为机器人开发者的热…...

3分钟快速上手BewlyBewly:打造你的专属B站美化体验

3分钟快速上手BewlyBewly&#xff1a;打造你的专属B站美化体验 【免费下载链接】BewlyBewly Just make a few small changes to your Bilibili homepage. (English | 简体中文 | 正體中文 | 廣東話) 项目地址: https://gitcode.com/gh_mirrors/be/BewlyBewly 你是否厌倦…...

Phi-4-mini-reasoning快速部署:Conda环境+PyTorch2.8适配避坑指南

Phi-4-mini-reasoning快速部署&#xff1a;Conda环境PyTorch2.8适配避坑指南 1. 项目概述 Phi-4-mini-reasoning是微软推出的3.8B参数轻量级开源模型&#xff0c;专为数学推理、逻辑推导和多步解题等强逻辑任务设计。这个模型主打"小参数、强推理、长上下文、低延迟&quo…...

ESP32组件化开发实战:从零构建高效项目结构

1. 为什么需要组件化开发&#xff1f; 第一次接触ESP32开发时&#xff0c;我习惯把所有代码都塞进main文件夹里。结果项目稍微复杂点就乱成一锅粥&#xff0c;每次修改都要在几十个文件里翻找&#xff0c;不同功能模块互相纠缠&#xff0c;想复用某个传感器驱动都得连带着拷贝…...

Wan2.2-I2V-A14B开源大模型部署:PyTorch 2.4+CUDA 12.4兼容性验证

Wan2.2-I2V-A14B开源大模型部署&#xff1a;PyTorch 2.4CUDA 12.4兼容性验证 1. 镜像概述与核心价值 Wan2.2-I2V-A14B是一款专注于文本到视频生成的开源大模型&#xff0c;其私有部署镜像经过深度优化&#xff0c;能够充分发挥RTX 4090D显卡的性能优势。这个镜像最大的特点在…...

音乐版权检测新方案:CCMusic模型与MySQL数据库集成

音乐版权检测新方案&#xff1a;CCMusic模型与MySQL数据库集成 用AI技术解决音乐版权保护难题&#xff0c;让每一首作品都能得到应有的尊重 1. 引言&#xff1a;音乐版权保护的现实挑战 音乐创作者们经常面临这样的困境&#xff1a;自己的作品在各大平台被无授权使用&#xff…...