使用 Nexus3 搭建本地镜像站

使用 Nexus3 搭建本地镜像站

使用 Nexus3 搭建本地镜像仓库,加速 Ubuntu/CentOS Maven、PyPi、NPM、GoProxy、Docker 等

Nexus3 介绍

部署服务

本文中部署 Nexus3 以 Docker 方式启动,也可以按照官网文档选择其他方式部署。

docker-compose 脚本如下:

docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
version: "3"

networks:
nexus:
driver: bridge

volumes:
nexus-data:
driver: local

services:
nexus3:
image: sonatype/nexus3
container_name: nexus3-server
restart: always
environment:
TZ: Asia/Shanghai
networks:
- nexus
ports:
- 20000:8081
- 20010:20010
volumes:
- nexus-data:/nexus-data

保存脚本后使用命令 docker-compose up -d 启动 nexus3 容器。等待启动完成后通过浏览器访问服务器 IP + 20000 端口。

点击 Sign in 会提示默认管理员密码位于 /nexus-data/admin.password 文件中。

在服务器上我们查看容器内对应文件可得到初始密码

shell
1
docker exec -it nexus3-server cat /nexus-data/admin.password

输入密码后会提示修改密码,以及是否允许匿名访问,我选择的

进过简单的初始化配置后,进入系统设置 => repositories 可以看到如下图所示,默认有几个示例仓库

我们先删除所有默认仓库,然后按需求添加自己需要的库。

配置仓库代理

添加代理仓库前,先创建不同代理仓库的存储库。便于代理库数据分类存储

APT

Ubuntu

上游仓库地址:https://mirrors.tuna.tsinghua.edu.cn/ubuntu/

Distribution 填写为需要代理的发行版本,例如:precise,trusty,xenial,bionic,focal

Debian

上游仓库地址:

Distribution 填写为需要代理的发行版本,例如:jessie,stretch,buster

Distribution 填写为需要代理的发行版本,例如:jessie/updates,stretch/updates,buster/updates

Docker

阿里云加速

上游仓库地址:https://t5t8q6wn.mirror.aliyuncs.com

如果有自己的阿里云开发者账号,可申请自己的专属加速仓库

DockerHub 加速

上游仓库地址:https://registry-1.docker.io

Docker 仓库组

可以使用组对外提供统一的访问入口

添加授权

Security => Realms 中添加 Docker Bearer Token Realm

如不勾选此选项,则无法使用 Nexus 加速镜像拉取,在使用 Nginx 代理中可看到日志如下,出现 401 错误

1
2
3
172.19.0.1 - - [31/Dec/2020:00:24:26 +0800] "GET /v2/ HTTP/1.1" 401 113 "-" "docker/19.03.12 go/go1.13.10 git-commit/48a66213fe kernel/3.10.0-1062.el7.x86_64 os/linux arch/amd64 UpstreamClient(Docker-Client/19.03.12 \x5C(linux\x5C))" "-"
172.19.0.1 - - [31/Dec/2020:00:24:26 +0800] "GET /v2/token?scope=repository%3Alibrary%2Fmaven%3Apull&service=http%3A%2F%2Fregistry.akiya.com%2Fv2%2Ftoken HTTP/1.1" 200 60 "-" "docker/19.03.12 go/go1.13.10 git-commit/48a66213fe kernel/3.10.0-1062.el7.x86_64 os/linux arch/amd64 UpstreamClient(Docker-Client/19.03.12 \x5C(linux\x5C))" "-"
172.19.0.1 - - [31/Dec/2020:00:24:26 +0800] "GET /v2/library/maven/manifests/latest HTTP/1.1" 401 5 "-" "docker/19.03.12 go/go1.13.10 git-commit/48a66213fe kernel/3.10.0-1062.el7.x86_64 os/linux arch/amd64 UpstreamClient(Docker-Client/19.03.12 \x5C(linux\x5C))" "-"

勾选此选项后拉取新镜像会使用 Nexus 中配置好的加速源加速,拉取完成后也可以在 Nexus 中通过 Browse 查看到本地镜像。这样局域网内下次有服务器拉取就不会再去外网拉一遍了,速度提升很多。

Go

加速仓库

上游仓库地址:https://mirrors.aliyun.com/goproxy

Go 仓库组

可以使用组对外提供统一的访问入口

Maven

加速仓库

上游仓库地址:https://maven.aliyun.com/repository/public/

Maven Releases

Maven 本地上传 Releases 包

Maven Snapshots

Maven 仓库组

可以使用组对外提供统一的访问入口

NPM

加速仓库

上游仓库地址:https://registry.npm.taobao.org

NPM 仓库组

PyPi

加速仓库

上游仓库地址:https://mirrors.aliyun.com/pypi/

PyPi 仓库组

YUM

加速仓库

上游仓库地址:https://mirrors.aliyun.com/centos/

EPEL

上游仓库地址:https://mirrors.aliyun.com/epel/

Vault

2020年11月30日 CentOS 6各大开源镜像站已经停止维护了,目前在官方和各大镜像站的 CentOS 源中已经无法找到 CentOS 6 的包。目前所有包均已移到 vault 仓库中。

官网快照地址:https://vault.centos.org/

上游仓库地址:http://mirrors.aliyun.com/centos-vault/

EPEL-archive

同上,CentOS 6 镜像站已停止维护,同样的 EPEL 默认源中也没有 CentOS 6 的包了。

上游仓库地址:https://archives.fedoraproject.org/pub/archive/epel/

Docker

CentOS 7 安装 Docker 的库

上游仓库地址:https://mirrors.aliyun.com/docker-ce/linux/centos/

Nginx

CentOS 安装新版本官方 Nginx 的库

上游仓库地址:http://mirrors.ustc.edu.cn/nginx/centos/

NUX

CentOS 7 某些包在 nux 上才能找到,所以也加上吧

上游仓库地址:https://li.nux.ro/download/nux/dextop/el7/

YUM 仓库组

可以使用组对外提供统一的访问入口

评论

:D 一言句子获取中...

加载中,最新评论有1分钟缓存...