[nexus] 部署安装篇

nexus是知名的私服服务,基于JAVA编写,我们一般可以拿它来作为内部的服务,如:

  • YUM
  • APT
  • MAVEN
  • NPM
  • Docker HUB

网络端口

Nexus 涉及3个端口,功能列表如下:

序号 端口号 协议 端口说明
01 8081 TCP Nexus系统缺省端口,Maven、NPM、Raw等类型的库皆使用该端口提供服务
02 8082 TCP 为Docker Hosted库提供的端口
03 8083 TCP 为Docker Group库提供的端口

数据目录

为nexus创建数据目录

mkdir /data/dbs/nexus

赋予权限

chown 200:200 /data/dbs/nexus
由于Nexus容器内UID为200的用户运行,所以需要在宿主机所创建的目录同样设置属主与属组为200

创建一个名为nexus-data容器存储卷

docker volume create --name nexus-data -o type=none -o device=/data/dbs/nexus -o o=bind

使用docker容器运行nexus3

docker环境安装完成后,可以直接使用以下命令来启动nexus

docker run -dti \
       --net=host \
       --name=nexus \
       --privileged=true \
       --restart=always \
       -e INSTALL4J_ADD_VM_PARAMS="-Xms4g -Xmx4g -XX:MaxDirectMemorySize=8g" \
       -v /etc/localtime:/etc/localtime \
       -v nexus-data:/nexus-data \
       sonatype/nexus3:latest
Nexus 的CPU核心建议至少为4

使用docker-compose编排 (推荐)

创建YAML

编写 docker-compose.yml文件,声明 nexus服务。文件内容如下:

version: "3"
services:
  nexus:
    image: sonatype/nexus3:latest
    container_name: nexus
    restart: always
    ports:
      - "8081:8081"
      - "8082:8082"
      - "8083:8083"
    volumes:
      - nexus-data:/nexus-data:rw
      - /etc/localtime:/etc/localtime:ro

volumes:
  nexus-data:
    external: true

启动 Nexus服务

docker-compose up -d

系统登陆

首次初始化时间会比较长些,耐心等待片刻,完成后可以使用浏览器看到以下页面:

点击右上角的 Sign in图标,缺省用户为admin,密码存储于 /nexus-data/admin.password文件,登陆成功后会提示更改密码,正常下一步即可。

创建 Blob Store

缺省的Blob Store名为default,管理员可以针对不同的 Responsitory设置不同的存储位置,可根据下表来创建:

名称 用途
npm-private 本地NPM Registry
npm-proxy 远端NPM Registry
npm-group 统一访问的 Registry URL
docker-private 本地Docker Registry
docker-proxy 远端Docker Registry
docker-group 统一访问Registry URL
maven Maven Repository
rawfiles 文件服务

Blob Store 是否需要根据不同的 Respository类型创建独立的 Store,视情况而定。例如:Maven库,如果企业自身不会发布包,则针对 Maven ProxyMaven HostedMaven Group都选择同一个Blob Store

用户设置

若需要摄像头自己的软件包、程序到Nexus中,需要进行身份难。Nexus支持LDAP等身份难方式,也支持本地用户认证。

一般允许匿名访问Nexus 服务。

参考引用