---
url: /dev/0qd30m28/index.md
description: 使用 Docker 快速搭建 Nexus Maven 私服，实现 Maven 仓库的私有化部署和管理，支持多种软件组件类型。
---
## Docker搭建在线nexus私服

> 使用nexus3搭建一个在线私服

`Nexus 3`是一个用于管理软件库和构建工件的现代化网络服务器。它提供了统一的软件组织和分发方案，可以轻松管理和访问不同类型的软件组件，例如`Maven`，`npm`，`Docker`等。

`Nexus 3`具有以下的特点：

1. 容易使用：`Nexus 3`提供了一个易于使用的界面，使用者可以轻松地管理软件库和构建工件。
2. 灵活性：`Nexus 3`支持多种软件组件类型，并且可以自定义软件组件类型。
3. 可扩展性：`Nexus 3`提供了丰富的API，使得用户可以轻松地扩展其功能。
4. 安全性：`Nexus 3`具备对软件组件的安全管理和控制，可以保护组件不被恶意篡改和滥用。

总之，`Nexus 3`是一个非常强大的软件库管理工具，可以方便地帮助开发者构建和管理软件组件，提高软件开发和交付的质量和效率。

### 搭建

`docker compose`文件:

```yaml
version: '3'
services:
  nexus:
    restart: always
    image: sonatype/nexus3
    container_name: nexus
    ports:
      - "13001:8081"
    volumes:
      - /data/nexus/data:/nexus-datas
```

使用`docker compose -f xxx.yaml up -d`启动。

数据将挂载在本地`/data/nexus/data`目录下。

初始密码查看，进入容器中，运行`*cat* /opt/sonatype/sonatype-work/nexus3/admin.password`命令查看初始`admin`密码

### 配置

首先登录，然后点击⚙️进入设置，`Repositories`->`create repository`，选择`maven2(hosted)`，其中，`hosted`代表可以上传依赖

`Name`: 唯一仓库名称

`Online`：此仓库接收在线请求

`Version policy`：仓库策略类型，如果每次`deploy`不可以覆盖上次的版本，就选`Snapshot`，选择`Release`时，每次上传版本号必须不一致，否则无法上传

其他按需选择，然后点击`Create repository`

创建成功后再次创建，选择`maven2(group)`，其中`group`代表可以下载依赖，其他和以上一样，但`Group`下的`Member repositiories`中，将上面创建的`hosted`仓库添加，这样这个仓库即可访问上传的依赖了。

### 权限控制

权限控制可以在`Security`中，通过创建不同`用户`，创建不同`权限`的`角色`，再分配给`用户`不同的`角色`，即可完成权限控制。
