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

文章编号:3549 2024-06-10 Nexus 3 Docker镜像 Docker加速 Docker代理 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 等其他类型的包管理。

 情况说明范本  木兰草原旅游攻略  中国缅甸最新消息  低学历的顶级黑客电影  男生学什么专业好一点  瓜子二手车实体店  成人专升本英语试卷  成人本科的最高学历是什么 
本文地址: https://www.q16k.com/article/e62c52e6bc887a2c1f55.html
92建站网

92建站网专注正版商用网站源码与静态模板下载,免费提供PbootCMS网站源码,PB网页模板,PHPCMS模板,商用企业网站源码,h5静态网页模板,小程序模板以及jQuery特效插件,轻松建网站就选92建站

学习平台:

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

妹子网

妹子网(meizi.com)专注于美女人像摄影艺术10余年,现在已经积累了海量的美女套图和视频资源。高清妹子图片超过100万张、性感美女写真10万余套、美女视频数万部、网红模特几千名。

大咖潮

大咖潮(DaKaChao.Com)是一个专注于服装潮流穿搭推荐平台,每天不断更新各自类型场合环境的潮流服装搭配方案。

福建省教师资格证

福建教师资格考试网为广大考生提供2024年福建省中小学教师资格证考试信息,福建教师招聘,厦门教师招聘包括教资考试报名,考试时间,教师资格证认定,资格审查以及福建普通话考试,福建事业单位招聘等福建省教师考试相关资讯。

E点通

E点通软件产品是全国首个提供给企业自主申报医疗保险申报互联网平台,和更多面向企业的服务内容

盛源在线网址

小勐拉盛源在线,盛源在线客服,盛源在线电话,盛源在线网址,盛源在线开户,盛源在线厅战略合作伙伴 客服24小时在线为您提供开户、汇款、取款等服务。

赛友在线

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

乐聚网一站式服务平台

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

手机游戏

龙域手游网是汇集了最好玩的手游下载网站,在龙域手游网手游排行榜中有热门的手游,提供最新免费安卓游戏下载,苹果iphone手机游戏下载,手机游戏攻略、游戏评测等原创内容,还有热门游戏礼包等着你,在龙域手游网是您查找好玩的手游的最好选择!

中国农业工程学会

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

E旅行

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

xz.com

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

贝贝微应用

由贝贝微助手开发的各类新浪微博应用工具。

Mosaic

With over ten years of experience in mosaic and tile. Atpalas Tile has various kinds of materials to choose, such as porcelain, glass, natural stone etc. Customized services are also available.

养兔一点通

养兔一点通是中国养兔业最权威的养兔网站,最及时的兔市行情价格、兔子供求信息等,最全面的养兔业资讯和权威的养兔技术全部免费服务养殖户,供应求购信息助您养兔无忧!

莱芜搬家公司

莱芜搬家公司电话:13518069172。莱芜市搬家公司致力于打造莱芜较大、较专业的服务、个企搬家、搬钢琴、空调移机、保洁、货运出租、专业装卸企业。