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

还有做网站的必要吗识图 WordPress

还有做网站的必要吗,识图 WordPress,报一个电脑培训班多少钱,asp网站做视频在已有 Nexus3 的基础上搭建 Docker 私有仓库(支持 Push / Pull / Proxy) 本文介绍如何在已部署好的 Nexus 3 上配置完整的 Docker 仓库体系,包括私有仓库(hosted)、代理仓库(proxy)和组合仓库&…

在已有 Nexus3 的基础上搭建 Docker 私有仓库(支持 Push / Pull / Proxy)

本文介绍如何在已部署好的 Nexus 3 上配置完整的 Docker 仓库体系,包括私有仓库(hosted)、代理仓库(proxy)和组合仓库(group),实现对 Docker 镜像的上传(push)、下载(pull)及对 Docker Hub 的缓存代理。


前置条件

  • 已部署 Nexus Repository OSS 3.x(如 3.73.0-12)
  • Nexus Web UI 可访问(默认:http://:8081)
  • 服务器已开放用于 Docker 仓库的监听端口(如 5000, 5001, 5002)
  • Docker 客户端可连接 Nexus,配置了 insecure-registries(如果使用 HTTP)

关于Nexus的部署,可以参考着这篇文章:

https://blog.csdn.net/kaka_buka/article/details/149228494


一、创建 3 类仓库:hosted、proxy、group

1️. 创建 Docker Hosted 仓库(用于 push)

用于上传你自己的镜像。

  • 路径:Repositories → Create repository → docker (hosted)
  • 配置示例:
配置项示例值
Namedocker-hosted
HTTP Port5002
Deployment PolicyAllow redeploy
Allow anonymous pull✅(可选)

点击 Create repository


2️. 创建 Docker Proxy 仓库(代理 Docker Hub)

用于拉取公共镜像并自动缓存。

  • 路径:Repositories → Create repository → docker (proxy)
  • 配置示例:
配置项示例值
Namedocker-proxy
HTTP Port5001
Remote Storagehttps://registry-1.docker.io
Docker IndexUse Docker Hub
Allow anonymous pull✅(推荐)

点击 Create repository


3️. 创建 Docker Group 仓库(统一出口)

用于统一 pull/push 地址。

  • 路径:Repositories → Create repository → docker (group)
  • 配置示例:
配置项示例值
Namedocker-group
HTTP Port5000
Group members添加顺序:docker-hosteddocker-proxy

点击 Create repository


二、开启匿名 pull(可选,但强烈推荐)

默认情况下,Nexus 的 Docker 仓库 不允许匿名访问,如果你不想让每个人都执行 docker login 才能 pull 镜像,需要额外开启匿名权限。以下是完整设置流程。


步骤 1:开启允许匿名 pull

  1. 登录 Nexus Web 控制台(默认地址:http://<NEXUS_IP>:8081)

  2. 在左侧菜单中点击:“Repositories”

  3. 找到你的 Docker 仓库(如 docker-proxydocker-group

  4. 点击对应仓库右侧的 “⛭” 配置按钮(Manage)

  5. 滑到页面底部,找到配置项:

    [✔] Allow anonymous docker pull
    
  6. 勾选它后,点击右上角 “Save” 按钮保存设置


步骤 2:启用 Docker Bearer Token Realm

❗ 注意:即使你勾选了“Allow anonymous pull”,如果没有启用名为 Docker Bearer Token Realm 的安全模块,匿名访问仍然会失败(出现 unauthorized 错误)

  1. 在左侧菜单点击:“Security → Realms”

  2. 页面分为两列:

    • 左侧:可用的认证模块(Available)
    • 右侧:已启用的模块(Active)
  3. 检查右侧是否包含:

    Docker Bearer Token Realm
    
  4. 如果没有,点击左侧的该项,然后点击中间的 按钮移动到右侧

  5. 最后点击右上角 “Save” 保存配置


可选:启用匿名用户访问 Nexus

若你希望 Nexus 的匿名用户也能正常访问仓库(适合公网访问或 CI 使用):

  1. 左侧菜单点击:“Security → Anonymous”

  2. 勾选:

    [✔] Allow anonymous users to access the server
    
  3. 点击保存


验证匿名 pull 是否生效

你可以在未登录状态下,在任意 Docker 客户端执行:

docker pull <NEXUS_IP>:5001/library/hello-world

如果返回:

Using default tag: latest
latest: Pulling from library/hello-world
...

说明匿名 pull 成功。如果提示 unauthorized,请重新检查 Realm 是否启用。


注意事项

项目描述
Realm 必须启用Docker Bearer Token Realm 是匿名访问的关键组件
Proxy/Group 都要设置要允许匿名 pull,proxygroup 仓库都需要分别开启勾选
Docker client 无需 login开启后,pull 镜像时不用执行 docker login,适合公共环境或 CI

三、客户端 Docker 设置(使用 HTTP 时)

修改 /etc/docker/daemon.json

{"insecure-registries": ["<NEXUS_IP>:5000", "<NEXUS_IP>:5001", "<NEXUS_IP>:5002"]
}

重启 Docker 服务:

sudo systemctl restart docker

四、使用示例:push & pull

登录(push 时必须)

docker login <NEXUS_IP>:5002

使用 Nexus 的用户凭证(如 admin / 密码)。


上传你自己的镜像(push)

docker tag nginx <NEXUS_IP>:5002/nginx:mytag
docker push <NEXUS_IP>:5002/nginx:mytag

拉取官方镜像(走 proxy 或 group)

# 使用 proxy 仓库
docker pull <NEXUS_IP>:5001/library/redis:7# 使用 group 仓库(推荐)
docker pull <NEXUS_IP>:5000/library/redis:7

注意:Docker Hub 官方镜像需要加上 library/ 前缀。


拉取你自己的镜像

# 从 hosted 仓库拉取
docker pull <NEXUS_IP>:5002/nginx:mytag# 或从 group 仓库拉取
docker pull <NEXUS_IP>:5000/nginx:mytag

五、推荐仓库结构总结

仓库类型名称端口用途
hosteddocker-hosted5002Push 私有镜像
proxydocker-proxy5001拉取并缓存公共镜像
groupdocker-group5000开发统一入口,建议客户端都用它

六、构建相关问题排查:docker build 强制走 HTTPS 导致拉取失败

当你已经通过 Nexus 正常配置并成功拉取镜像后,可能在执行 docker build 时,仍然会出现如下错误:

failed to do request: Head "https://docker.local.com/v2/library/openjdk/manifests/17-slim": Connect failed

问题原因

该问题本质上是:

  • 使用了域名访问私库,IP访问就不会又这个问题
  • Docker 构建引擎(BuildKit)默认强制使用 HTTPS
  • 即使你在 /etc/docker/daemon.json 配置了 insecure-registries,BuildKit 仍然忽略它
  • 所以在私有 Nexus(HTTP)环境下会导致构建失败

解决方案

方法一:临时关闭 BuildKit(推荐)
DOCKER_BUILDKIT=0 docker build -t your-image .

适用于本地调试或 CI 构建任务。


方法二:全局禁用 BuildKit

修改 /etc/docker/daemon.json

{"insecure-registries": ["docker.local.com"],"features": {"buildkit": false}
}

然后重启 Docker:

sudo systemctl restart docker

问题总结

操作是否使用 insecure-registries是否默认使用 HTTPS
docker pull✅ 是❌ 否
docker build⚠️ 依赖 BuildKit 是否开启✅ 是

BuildKit 是 Docker 的新一代构建器,虽然性能强,但目前对私有 HTTP 仓库的兼容性仍有问题。在不使用 HTTPS 的场景下,关闭 BuildKit 是最稳妥的解决方案

结语

通过上述配置,你的 Nexus 3 就能作为一套完整的私有 Docker 镜像仓库,支持上传、下载、代理三大功能。不仅便于团队统一镜像源、提高构建速度,还能完全脱离公网依赖。

参考链接

  • Nexus 3 官方文档 - Docker Registry
  • Docker Hub - openjdk 镜像
  • Docker insecure-registries 配置说明

在这里插入图片描述

http://www.dtcms.com/a/618767.html

相关文章:

  • 俄语 俄文 俄罗斯语外贸网站建设礼品定制
  • 郑州好的建网站公司wordpress 采集器
  • 轻松设置-系统优化万能工具
  • query加强之深度解析ReDI:通过分解与解释增强query理解的推理方法
  • 观点动力学和回音室
  • 中小学网站建设域名论坛网站
  • 5.网络原理之TCP_IP
  • 全球访问量top100网站建设银行官方网站-云服务
  • 小梦音乐下载 1.0.5 | 提供三条音源,支持多种音质选择和批量下载的音乐下载工具
  • GIS:揭开你神秘的面纱
  • 怎么做网站小图标有的网站域名解析错误
  • 安徽省网站肥建设网站湖北望新建设有限公司网站
  • 机器学习周报二十二
  • 计算二叉树的深度 | C语言
  • 什么网站算是h5做的网络推广企划
  • 传导案例:某医疗仪器传导骚扰整改案例
  • 做跨境电商有没推荐的网站新闻稿件代发平台
  • C++篇(18)类型转换与IO库
  • 海口中小企业网站制作3D特效做首页的网站
  • 专业做家政网站( )是网站可以提供给用户的价值
  • 网站活动专题页面学校网站建设制作方案
  • 【C++】从理论到实践:类和对象完全指南(上)
  • 网站不排名一切等于零做网站推广维护需要学些什么
  • 公考面试资源合集
  • 网站建设 预付款自己怎么做软件
  • 41、C#什么是单例设计模式
  • kafka单机版安装
  • 网站开发要求有哪些大沥南庄网站建设
  • 我在高职教STM32(新12)——STM32中断概览
  • OceanBase 内存数据转储、合并说明