sonatype/nexus-iq-serverSonatype Nexus IQ Server Docker 镜像基于 Red Hat Universal Base Image 构建,用于快速部署 Sonatype Nexus IQ Server。Nexus IQ Server 是一款企业级软件供应链管理工具,提供软件成分分析、安全漏洞检测、许可合规检查及政策管理等功能,帮助组织在软件开发全生命周期中确保依赖组件的安全性与合规性。
-slim 标签镜像,减少资源占用bashdocker run -d -p 8070:8070 -p 8071:8071 --name nexus-iq-server sonatype/nexus-iq-server
让 Docker 自动分配主机端口:
bashdocker run -d -p 8070 -p 8071 --name nexus-iq-server sonatype/nexus-iq-server
bashdocker ps --filter "name=nexus-iq-server"
Nexus IQ Server 数据需持久化存储以确保重启后数据不丢失,支持两种方案:
bash# 创建数据卷 docker volume create --name sonatype-work docker volume create --name sonatype-logs # 运行容器并挂载卷 docker run -d \ -p 8070:8070 -p 8071:8071 \ --name nexus-iq-server \ -v sonatype-work:/sonatype-work \ -v sonatype-logs:/var/log/nexus-iq-server \ sonatype/nexus-iq-server
bash# 创建主机目录 mkdir -p /some/dir/sonatype-work /some/dir/sonatype-logs # 运行容器并挂载目录 docker run -d \ -p 8070:8070 -p 8071:8071 \ --name nexus-iq-server \ -v /some/dir/sonatype-work:/sonatype-work \ -v /some/dir/sonatype-logs:/var/log/nexus-iq-server \ sonatype/nexus-iq-server
/opt/sonatype/nexus-iq-server/etc/nexus-iq-server/config.yml(可通过 官方文档 查看配置项说明)通过 JAVA_OPTS 环境变量传递 JVM 参数:
bashdocker run -d \ -p 8070:8070 -p 8071:8071 \ --name nexus-iq-server \ -e JAVA_OPTS="-Xms512m -Xmx1024m -Ddw.logging.level=INFO" \ sonatype/nexus-iq-server
版本 101 和 102 的启动脚本 start.sh 缺失 ${JAVA_OPTS} 变量,需额外执行:
bash# 修改启动脚本 docker exec nexus-iq-server sed -i 's/java/java \${JAVA_OPTS}/g' /opt/sonatype/nexus-iq-server/start.sh # 重启容器 docker restart nexus-iq-server
http://<主机IP>:8070admin/admin123${SONATYPE_WORK}/javaprefs 目录,默认已配置为持久化路径yamlversion: '3.8' services: nexus-iq-server: image: sonatype/nexus-iq-server:latest container_name: nexus-iq-server restart: always ports: - "8070:8070" # Web UI 及 API - "8071:8071" # 管理端口 environment: - JAVA_OPTS="-Xms1g -Xmx2g -Ddw.logging.level=WARN" volumes: - sonatype-work:/sonatype-work - sonatype-logs:/var/log/nexus-iq-server healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8070/api/v2/appinfo"] interval: 30s timeout: 10s retries: 3 volumes: sonatype-work: name: nexus-iq-work sonatype-logs: name: nexus-iq-logs
dnf 替换为 microdnf,扩展镜像时需使用 microdnf 管理依赖版本 119 修复了非优雅关闭问题,升级前需按以下方式停止旧版本容器:
bash# 自动获取容器 ID 并停止 docker exec -ti $(docker container list -a | grep nexus-iq | head -n 1 | awk '{print$1}') bash -c 'kill -TERM "$(cat /sonatype-work/lock | cut -d"@" -f1)"' # 或使用已知容器 ID docker exec -ti <container_id> bash -c 'kill -TERM "$(cat /sonatype-work/lock | cut -d"@" -f1)"'
版本 118 将 nexus 用户 UID 从 997 改为 1000(系统账户→普通用户),需修复持久化卷权限:
bashdocker run -it -u=0 -v [卷名]:[容器内路径] sonatype/nexus-iq-server:1.118.0 chown -R nexus:nexus [容器内路径] # 示例(修复 sonatype-work 卷) docker run -it -u=0 -v sonatype-work:/sonatype-work sonatype/nexus-iq-server:1.118.0 chown -R nexus:nexus /sonatype-work
版本 101 变更基础镜像(移除 Chef 依赖),导致 nexus 用户 UID 变更,需修复卷权限:
bashdocker run -it -u=0 -v [卷名]:[容器内路径] sonatype/nexus-iq-server:1.101.0 chown -R nexus:nexus [容器内路径]
版本 69 将基础镜像从 CentOS 改为 Red Hat UBI,导致 nexus 用户 UID 变更,需修复卷权限:
bashdocker run -it -u=0 -v [卷名]:[容器内路径] sonatype/nexus-iq-server:1.69.0 chown -R nexus:nexus [容器内路径]
bashdocker build --rm=true --tag=sonatype/nexus-iq-server .
可通过 --build-arg 指定以下可选参数:
| 参数 | 说明 |
|---|---|
| IQ_SERVER_VERSION | Nexus IQ Server 版本号 |
| IQ_SERVER_SHA256 | 校验和(提供 IQ_SERVER_VERSION 时必填,用于验证下载包完整性) |
| SONATYPE_WORK | 工作目录路径(默认:/sonatype-work) |
| LOGS_HOME | 日志目录路径(默认:/var/log/nexus-iq-server) |
| GID | 运行用户组 GID(默认:1000) |
| UID | 运行用户 UID(默认:1000) |
可通过修改 config.yml 文件自定义服务器配置,支持的配置项参考 官方文档。
扩展镜像时需注意不同版本的包管理器差异:
microdnf(如 microdnf install <package>)dnf(如 dnf install <package>)yum(如 yum install <package>)使用 rspec 和 serverspec 测试框架验证镜像:
bashrspec [--backtrace] spec/Dockerfile_spec.rb
默认镜像包含 git 等工具以支持增强型 SCM 集成。如需精简版本,可使用 -slim 标签:
bashdocker run -d -p 8070:8070 -p 8071:8071 sonatype/nexus-iq-server:latest-slim
通过 Dockerfile.rh 可构建 Red Hat 认证镜像,包含:
除非文件头部另有说明,本仓库中的文件均采用 Apache v2 许可证 授权。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务