解决访问难题:使用Nexus 3搭建自己的Docker镜像代理加速服务

解决访问难题:使用Nexus 3搭建自己的Docker镜像代理加速服务

近期,传言许多公开的Docker镜像加速地址由于神秘因素影响纷纷下线,停止对外服务。在此之前官方Docker镜像源在国内也受到屏蔽,使得从国内环境拉取Docker镜像变得异常困难。现在,建立自己的Docker镜像代理显得尤为重要。本文将详细介绍如何使用Nexus 3搭建Docker镜像代理。文章内容较多专业知识,主要面向运维或开发人员,对新手小白用户可能不太友好。

47dfe7ab8ab8639b.png

关于Nexus 3

Nexus 3 是一个强大的包管理和仓库工具,由 Sonatype 开发。它支持多种包格式,包括 Maven, Docker, npm, NuGet 等,适用于软件开发中的依赖管理和仓库托管。以下是一些关于 Nexus 3 的主要特点:

Nexus 3 是开发和 DevOps 团队在构建和维护软件项目中不可或缺的工具之一,特别是在处理多种依赖和需要确保依赖安全性的场景下。

前提准备

之所以选择使用国外vps是因为官方Docker镜像源在国内受到屏蔽,导致国内服务器无法正常访问这些镜像。因此,需要借助国外VPS来进行代理中转,以确保可以顺利拉取所需的Docker镜像。

使用场景

接下来,xiaoz通过我个人使用场景来详细说明这一过程。

使用Docker Compose安装Nexus 3

新建一个 docker-compose.yaml 文件,内容如下:

version: "3.8"
services:nexus:image: sonatype/nexus3container_name: nexusports:- "8081:8081"volumes:- ./data:/nexus-datarestart: always

然后使用命令 docker-compose up -d 启动Nexus 3容器,首次启动需要进行初始化操作,过长稍微较长,可能需要等待几分钟才能完全启动。

配置Nexus 3

启动完毕后,输入 http://IP:8081 访问Nexus 3,然后点右上角进行登录,用户名为,密码需要通过查看挂载目录下的 admin.password 获得。

137cffcef57090ab.png

根据引导修改管理员密码。

856386691d1ac016.png

这里我选择启用匿名访问。

efa13775bc2df4ff.png

通过Nexus 3设置Docker镜像代理

打开“ 设置 >> Security >> Roles >> Create Role

5db475d4b2057a8e.png

然后按照如下填写:

如下截图:

3799b66af3402962.png

继续打开“ 设置 >> Security >> Users ”,找到 Anonymous User 这个用户进行编辑,并添加 DockerPullAnonymous 这个权限。

f86732998a8d735d.png

继续打开“ 设置 >> Security >> Realms ”,添加 Docker Bearer Token Realm 这个权限并保存。

e48aaed59c8323d8.png

继续打开“ 设置 >> Routing Rules ”,添加一条新规则:

ce9d38c1679e60ae.png

打开“ 设置 >> Repositories >> Create repository ”我们开始创建一个Docker镜像仓库。

77573247631b22e4.png

然后选择 docker(proxy)

6931f5e839c29141.png

注意下方红框标注的地方(Remote storage填写 https://registry-1.docker.io )。

6a109566d552904e.png

Routing Rule选择之前添加的 Allow_helloz ,其它保持默认即可。

911af2c01ced50b1.png

设置Nginx反向代理

执行 docker pull 操作时,Docker 官方要求目标镜像地址必须是 HTTPS 链接。为了满足这一要求,我们可以通过配置 Nginx 作为反向代理来连接 Nexus 3,并通过域名设置镜像地址以支持 HTTPS 访问。具体的 Nginx 配置如下所示:

server {listen 80;server_name hub.xxx.com; # 填写你自己的域名rewrite ^(.*) https://hub.xxx.com$1 permanent;
}
server {listen 443 ssl http2;server_name hub.xxx.com; # 填写你自己的域名ssl_certificate /data/ssl/hub.xxx.com.crt; # 改成你自己的ssl证书ssl_certificate_key /data/ssl/hub.xxx.com.key; # 改成你自己的SSL私钥ssl_session_TIMeout 1d;ssl_session_cache shared:MozSSL:10m;  # about 40000 sessionsssl_session_tickets off;# intermediate configurationssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;ssl_prefer_server_ciphers off;# HSTS (ngx_http_headers_module is required) (63072000 seconds)add_header Strict-Transport-Security "max-age=63072000" always;# OCSP staplingssl_stapling on;ssl_stapling_verify on;location / {client_Max_body_size  64m;proxy_http_version 1.1;proxy_pass http://IP:8081/repository/docker/;  # 改成你自己在Nexus 3上Docker的镜像地址proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr;proxy_set_header X-Forwarded-Proto $scheme;proxy_connect_timeout 60s;proxy_send_timeout 60s;proxy_read_timeout 300s;send_timeout 60s;proxy_buffers 16 32k;proxy_buffer_size 64k;proxy_set_header Connection "";}
}

测试

接下来在国内服务器使用命令 docker pull hub.xxx.com/helloz/onenav:0.9.33 拉取镜像测试,可以成功拉取,说明配置成功了。

10f5e0bc3a32948c.png

继续使用命令 docker pull hub.xxx.com/baiyuetribe/zdir:latest 尝试拉取一个非用户的镜像,提示没有权限,符合我们的预期情况。

180974dc82ff7443.png

结语

在本文中,我们详细探讨了如何使用 Nexus 3 搭建 Docker 镜像代理。值得注意的是,每个人的使用场景都有所不同,但 Nexus 3 的灵活性允许用户根据自己的具体需求配置不同的规则,实现精细化的权限控制。这一功能不仅使 Nexus 3 成为管理 Docker 镜像的理想选择,同时也适用于 npm、maven 等其他类型的包管理。

外链关键词:  计算机网络专业就业  学历高没有架子的女生多吗  沈阳本科大学  学历内卷文案  公司装修设计效果图  帅气动漫女生图片  2020年法考报名时间  古装美女集锦 
本文地址: https://www.q16k.com/article/e62c52e6bc887a2c1f55.html
资源吧

资源吧(王鹏飞博客)提供精品网站源码下载(asp源码,php源码,.net源码),网站模版,使用教程和源码评测,一个关注SEO、PHP编程、网络推广、综合布线、服务器维护、PPT模板免费、电脑组装的IT独立博客,提供互联网知识和网站运营技巧以及电脑周边硬件维护知识!

宿命玫瑰安雨念的DJ舞曲

该站点未添加描述description...

炎黄风俗网

民俗旅游网址大全,风土人情网站导航,传统文化网址精选,实用绿色网站收录。

BlueHost香港服务器评测

BlueHost香港服务器评测网专业为BlueHost中国用户提供详细的美国香港虚拟主机、美国香港服务器等操作指导,及时更新发布BlueHost优惠码和优惠活动,让国内用户购买性价比高的美国香港虚拟主机、香港服务器产品。

珠海房产网

珠海中原找房为您提供最新最全的珠海买房、珠海新房信息,同时还提供定制找房、VR看房等线上看房服务,让您足不出户看好房。想知道珠海新房价格就来珠海中原找房吧!

在线万年历

万年历,日历,历史上的今天,节日,农历,查询

天天游戏app

天天游戏app-官方平台

华硕合伙人

该站点未添加描述description...

綦江手机台

该站点未添加描述description...

Apache

该站点未添加描述description...

世界之战

该站点未添加描述description...

热门手游排行榜

96U手游网,发现好玩的手机游戏,为玩家提供安卓、iOS游戏更新与下载,并由玩家下载喜好度推出热门手游排行榜,同时为广大手游玩家提供热门手游攻略、评测、软件下载等综合服务。

爱百科

“爱百科”是一个专门收集各类生活窍门、时尚问答等内容型站点。

连连看3.1

连连看小游戏大全提供连连看3.1,连连看3.1原版,宠物连连看3.1,宠物连连看3.1无敌版,宠物连连看2.5,宠物连连看2.6,宠物连连看3.0,宠物连连看单机版,连连看单机版下载,宠物连连看特别版等宠物连连看在线玩下载。

明溪县国强

明溪县国强的地址是三明明溪县新大路1010,我们的服务电话是没有电话。

娆хヤ骇娆хヤ骇戒骇绮惧,椤Bㄦ,戒骇绮惧99卞璐硅棰,浜娲茬患绮惧绗椤

娆хヤ骇娆хヤ骇戒骇绮惧,椤Bㄦ,戒骇绮惧99卞璐硅棰,浜娲茬患绮惧绗椤,浜娲ヨ绫灏,ф缇FEE绫,璐AV璧婧缃绔

小庄生活记录

55G游戏网是一个提供手游下载、软件应用下载、软件教程等大型综合网站,本站以手游为主,涵盖手游排行榜、手游推荐、精品应用等多种类型,为玩家打造当下最好玩的游戏下载乐园。