一、简介

Nexus Repository Manager(简称Nexus)是一个强大的仓库管理器。
Nexus3支持maven、docker、npm、yum、apt等多种仓库的管理。

建立了 Maven 私服后,当用户需要某个包时:

  1. 请求本地仓库
  2. 请求Maven私服,将所需包下载到本地仓库
  3. 请求远程仓库,将所需包下载并缓存到Maven私服

二、Docker部署

操作系统:22.04.4

  • 创建文件夹
mkdir -p /home/nexus && chown -R 200 /home/nexus
  • 运行
docker run -d -p 8081:8081 -p 8086:8086 --restart=always -v /home/nexus:/nexus-data \
-e INSTALL4J_ADD_VM_PARAMS="-Xms512m -Xmx512m -XX:MaxDirectMemorySize=2048m" \
 --name soft-nexus sonatype/nexus3:3.67.1
  • 密码
    默认管理员admin,密码在 /home/nexus/admin.password
    10c85f53-6913-4cd8-afb5-a1ccc675449c

  • 登录
    http://192.168.1.13:8081
    修改密码:admin123
    Docker搭建Maven仓库Nexus-LMLPHP

三、仓库配置

  • maven-aliyun
    阿里云代理maven仓库,通过阿里云镜像下载依赖包
    阿里云镜像:http://maven.aliyun.com/nexus/content/groups/public/

Docker搭建Maven仓库Nexus-LMLPHP

  • maven-releases
    公司内部发布的包
    Allow redeploy:允许对仓库中的包维护升级新版本

Docker搭建Maven仓库Nexus-LMLPHP

  • docker-releases
    公司内部发布的docker镜像

Docker搭建Maven仓库Nexus-LMLPHP

  • docker 添加权限

Docker搭建Maven仓库Nexus-LMLPHP

四、用户使用Maven

  • 本地maven的setting.xml
    例如在:apache-maven\conf\settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <localRepository>D:\.m2</localRepository>
    <pluginGroups>
        <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
    </pluginGroups>
    <proxies>
    </proxies>
    <servers>
        <server>
            <id>maven-aliyun</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
        <server>
            <id>maven-releases</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
    </servers>
    <profiles>
        <profile>
            <id>nexus</id>
            <repositories>
                 <repository>
                    <id>maven-aliyun</id>
					<name>nexus</name>
                    <url>http://192.168.1.33:8081/repository/maven-aliyun/</url>
					<releases>
						<enabled>true</enabled>
					</releases>
                </repository>
                 <repository>
                    <id>maven-releases</id>
					<name>nexus</name>
                    <url>http://192.168.1.33:8081/repository/maven-releases/</url>
					<releases>
						<enabled>true</enabled>
						<updatePolicy>always</updatePolicy>
					</releases>
                </repository>
            </repositories>
        </profile>
    </profiles>
    <activeProfiles>
        <activeProfile>nexus</activeProfile>
    </activeProfiles>
</settings>
  • 启动Spring项目更新上传包

Docker搭建Maven仓库Nexus-LMLPHP

Docker搭建Maven仓库Nexus-LMLPHP

五、管理Docker镜像

  • 配置 /etc/docker/daemon.json
{
  "registry-mirrors": ["http://192.168.1.33:8086", "https://registry.docker-cn.com"]
  "insecure-registries": ["http://192.168.1.33:8086"]
}
systemctl daemon-reload && systemctl restart docker
  • 登录
docker login 192.168.1.33:8086 -u admin -p admin123
  • 上传镜像
docker tag redis:7.2.4 192.168.1.33:8086/redis:7.2.4
docker push 192.168.1.33:8086/redis:7.2.4

Docker搭建Maven仓库Nexus-LMLPHP

  • 下载镜像
docker pull 192.168.1.33:8086/redis:7.2.4
04-23 23:32