文章

nexus的安装与使用

介绍

nexus可以做apt,yum,docker等的私有仓库

安装

docker安装

mkdir /nexus/nexus-data 
chown -R 200 /nexus/nexus-data
podman run -d -p 8081:8081 --privileged --name nexus -v /nexus/nexus-data:/nexus-data --ulimit nofile=65536:65536 sonatype/nexus3

docker-compose安装

version: "3.8"
services:
  nexus:
    image: sonatype/nexus3
    container_name: nexus
    restart: always
    ports:
      - 8081:8081
    volumes:
      - /nexus/nexus-data:/nexus-data

登录

账号是admin,密码在nexus-data/admin-password里
登陆后,需要进行设置。下面一步选择所有人可以连接 173.1.png

在nexus中,大部分的仓库都可以分为以下三种类型:
proxy,代理仓库,用来代理那些知名的镜像站。
hosted,宿主仓库,即本地仓库,可以用来存放自己的jar包、docker镜像等
group,可以将多个代理仓库或宿主仓库合并在一起,然后向外提供服务。

创建存储

例:创建一个yum和apt的存储 173.2.png 173.3.png 173.4.png 173.5.png

添加yum host仓库

173.6.png 173.7.png 文件深度可以随意选,但是后续上传的文件格式要一致,勾选allow redeploy 173.8.png

上传rpm文件到host仓库

173.9.png 这里的文件深度就要跟之前填的保持一致,2层 173.10.png 173.11.png

以redhat为例修改yum源

Cd /etc/yum/pluginconf.d
Vi subscription-manager.conf

将enable=1改成0

Cd /etc/yum.repos.d/
Mv redhat.repo rehat.repo.bak
Vi nexus.repo
[nexus]
name=Nexus Yum Repository
baseurl=http://172.28.11.109:8081/repository/yum-host/
enabled=1
gpgcheck=0

执行yum clean all //清理缓存
yum makecache //建立元数据缓存
yum update
报错,这是因为缺少repomd.xml文件

173.12.png

可以用yum group来解决这个问题,yum group可以把多个proxy和host集合在一起,填yum源的时候只需要填group的地址就行

添加yum proxy仓库

173.13.png

yum源地址:https://mirrors.aliyun.com/centos-stream/9-stream/BaseOS/x86_64/os/
修改源过程略
报错,只需要按提示加参数就行

173.14.png

执行完update后就可以看到文件

173.15.png

添加yum group仓库

将host和proxy都加到group里

173.16.png

redhat9的yum源填group的地址后执行update,可以看到host和proxy的文件都会存到group里

173.17.png

添加apt proxy仓库

173.18.png

清华同方源:https://mirrors.tuna.tsinghua.edu.cn/ubuntu
链接地址可以按copy键

173.19.png

修改apt源
以ubuntu24.04为例
建议改之前先备份
Vi /etc/apt/sources.list.d/Ubuntu.sources

Types: deb
URIs: http://172.28.11.109:8081/repository/apt-qinghua/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Types: deb
URIs: http://172.28.11.109:8081/repository/apt-qinghua/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

修改好后,运行apt update

执行完后可以看到上传的文件

173.20.png

可以直接复制地址到浏览器,可以看到把清华的源给镜像了

173.21.png 安装nginx

apt-cache madison nginx      //列出nginx所有源
apt install nginx

可以看到多了nginx的包,后续再装nginx后将不再从公网上拉,而是从内网的仓库拉取

173.22.png

添加apt host仓库

在nexus服务器上执行gpg --gen-key 173.23.png

输入密码

173.24.png

导出公钥

gpg -a -o nexus_pub.asc --export nexus  

导出私钥

gpg -a -o nexus_pri.asc --export-secret-key nexus

添加apt host仓库

173.25.png

到客户端将公钥放到/etc/apt/trusted.gpg.d/目录下

ubuntu24.04这里用老版本的方式修改yum源,新版本的修改方式没有成功

vi /etc/apt/sources.list
deb [trusted=yes] http://172.28.11.109:8081/repository/apt-host/ noble main

执行apt update
改完可以安装手动上传的deb文件了

添加docker host仓库

如果是容器部署的nexus,还需要把8082端口开放

173.26.png

远程登录
首先编辑/etc/docker/daemon.json
填写{ "insecure-registries": ["172.28.11.109:8082"] }

systemctl daemon-reload
systemctl restart docker

这样允许login http

docker login 172.28.11.109:8082

打标签

docker tag docker.io/nginx:1.24 172.28.11.109:8082/nginx:1.22

上传镜像

docker push 172.28.11.109:8082/nginx:1.22

可以看到已经上传成功 173.27.png 拉取镜像

docker pull 172.28.11.109:8082/nginx:1.22

License:  CC BY 4.0