[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 Proxy
、Maven Hosted
、Maven Group
都选择同一个Blob Store
。
用户设置
若需要摄像头自己的软件包、程序到Nexus中,需要进行身份难。Nexus支持LDAP等身份难方式,也支持本地用户认证。
一般允许匿名访问Nexus 服务。
参考引用
- [1] 《云原生架构进阶实战》 王玉平
- [2] https://hub.docker.com/r/sonatype/nexus3