Nexus管理私服

Nexus管理私服
一、快速部署Docker 方式首先确保服务器已安装 Docker。执行以下命令拉取并启动 Nexus 3dockerrun-d--namenexus\-p8081:8081\-v/your/nexus-data:/nexus-data\sonatype/nexus3-p 8081:8081将容器的 8081 端口映射到宿主机后续通过http://服务器IP:8081访问。-v /your/nexus-data:/nexus-data将数据持久化到宿主机目录避免容器删除后数据丢失。启动后稍等 1-2 分钟在浏览器中访问http://IP:8081。二、初始登录与基础设置获取初始密码进入容器查看自动生成的admin密码dockerexec-itnexuscat/nexus-data/admin.password复制输出的一串字符。登录并修改密码浏览器打开 Nexus 界面点击右上角Sign in用户名admin密码粘贴上一步获取的内容。系统会强制要求你修改密码按提示设置新密码。禁用匿名访问可选但推荐点击顶部齿轮图标进入Administration→Security→Anonymous Access去掉Allow anonymous users to access the server的勾选。这样可以要求所有拉取和发布都需要认证保障私服安全。三、理解三种核心仓库类型在 Nexus 里一切制品管理都围绕仓库展开。你需要明确这三种仓库的角色proxy代理仓库代理外部远程仓库如 Maven Central、Docker Hub。本地客户端请求时Nexus 先查缓存没有再去远程拉取并缓存实现加速和离线可用。hosted托管仓库存放你们自己开发的内部制品如公司项目的 jar、docker 镜像等。有明确的版本策略Release 或 Snapshot。group仓库组将多个 proxy 和 hosted 仓库聚合成一个 URL开发者只需配置这一个地址就能访问组内所有仓库的内容。四、配置 Maven 私服最经典的使用场景假设你要为 Java 项目搭建 Maven 私服典型配置步骤如下1. 创建 Maven 代理仓库进入Administration→Repository→Repositories点击Create repository。选择maven2 (proxy)。Name填写maven-central。Remote storage填写https://repo1.maven.org/maven2/或使用阿里云镜像https://maven.aliyun.com/repository/public。其他默认点击页面底部Create repository。用同样方法可再创建一个代理 Maven Snapshot 的仓库如指向https://s01.oss.sonatype.org/content/repositories/snapshots/非必须。2. 创建 Maven 托管仓库存放内部制品再次Create repository→maven2 (hosted)。创建两个Name:maven-releases,Version policy:Release。Name:maven-snapshots,Version policy:Snapshot。对于maven-releasesDeployment policy建议选择Disable redeploy防止已发布的发行版被覆盖。3. 创建 Maven 仓库组Create repository→maven2 (group)。Name:maven-public。在Member repositories栏中将你刚创建的maven-central、maven-releases、maven-snapshots都添加进去并确保代理仓库在最上方、托管仓库在下顺序无关紧要但通常代理放前面。点击创建。现在你有了一个统一的私服地址后续所有客户端配置都指向它。4. 配置客户端开发者本地或 CI 服务器在 Maven 的settings.xml中通常位于~/.m2/settings.xml或 Maven 安装目录的conf/settings.xml添加serversserveridnexus/idusernameadmin/usernamepassword你的admin密码/password/server/serversmirrorsmirroridnexus/idmirrorOf*/mirrorOfurlhttp://Nexus服务器IP:8081/repository/maven-public//url/mirror/mirrorsmirrorOf*/mirrorOf表示所有请求都通过该私服。如果只想代理中央仓库可改为central。注意 URL 最后要带/。配置完成后Maven 依赖拉取将全部通过你的私服。5. 发布内部制品到私服在项目的pom.xml中增加分发仓库配置distributionManagementrepositoryidnexus/idurlhttp://Nexus服务器IP:8081/repository/maven-releases//url/repositorysnapshotRepositoryidnexus/idurlhttp://Nexus服务器IP:8081/repository/maven-snapshots//url/snapshotRepository/distributionManagement执行mvn deploy即可将制品推送至对应的托管仓库。注意id必须与settings.xml中server的id一致以便认证。五、配置 Docker 私服Nexus 同样擅长管理 Docker 镜像私服。配置要点1. 创建 Docker 托管仓库Create repository→docker (hosted)。Name:docker-hosted。HTTP端口填写一个非 8081 的端口如8082需要映射到宿主机启动容器时增加-p 8082:8082。勾选Force basic authentication以启用认证避免未授权推送。创建后仓库地址为http://IP:8082。也可按需创建 Docker proxy 指向 Docker Hub再创建 group但托管仓库已可直接 push/pull2. 客户端使用登录私服docker login http://IP:8082输入 Nexus 的 admin 账号密码。推送镜像dockertag my-app:latestIP:8082/my-app:latestdockerpushIP:8082/my-app:latest拉取镜像docker pull IP:8082/my-app:latest注意Docker 要求使用 HTTPS 或配置非安全仓库。测试环境可在/etc/docker/daemon.json添加{insecure-registries:[IP:8082]}然后重启 Docker。生产环境务必配置 TLS 证书。六、用户与权限管理多团队协作对于多人或多团队共用的私服必须限制权限。创建用户Administration→Security→Users→Create local user。填写 ID、名字、密码并设置状态为Active。内置角色与自定义角色系统预置了nx-admin全部权限、nx-anonymous匿名权限等。建议创建自定义角色Security→Roles→Create role。选择权限如nx-repository-view-maven2-*-read赋予只读nx-repository-view-maven2-*-add和-edit赋予发布能力。可根据仓库名称精准授权。分配角色给用户编辑用户在Roles Granted中添加对应角色即可。典型场景给 CI 系统创建一个专用账号赋予maven-releases和maven-snapshots的写入权限开发者只有读取权限。

最新新闻

日新闻

周新闻

月新闻