使用 Docker 安装 Nexus 并启用 HTTPS
Nexus Repository Manager 是一个强大的工具,用于管理软件组件,支持多种格式,包括 Maven、npm 和 Docker 镜像等。本文将介绍如何使用 Docker 安装 Nexus,并通过 HTTPS 启用安全访问。
1. 环境准备
在开始安装之前,请确保你已经安装了 Docker 和 Docker Compose。可以通过如下命令确认:
docker --version
docker-compose --version
2. 创建 Docker Compose 配置
为了简化 Nexus 的安装,使用 docker-compose
是一个好方法。创建一个新的目录,例如 nexus
, 然后在该目录下创建一个 docker-compose.yml
文件。
version: '3'
services:
nexus:
image: sonatype/nexus3:latest
container_name: nexus
ports:
- "8081:8081"
- "8443:8443" # HTTPS 端口
volumes:
- nexus-data:/nexus-data
restart: always
volumes:
nexus-data:
3. 启动 Nexus
在 nexus
目录下,运行以下命令启动 Nexus:
docker-compose up -d
启动过程可能需要一点时间,你可以通过以下命令查看 Nexus 日志,确保它已成功启动:
docker logs -f nexus
4. 配置 HTTPS
默认情况下,Nexus 使用 HTTP 提供服务。为了启用 HTTPS,需要生成 SSL 证书。这里我们使用自签名证书作为示例。可以使用 OpenSSL 生成证书:
mkdir certs
cd certs
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout nexus.key -out nexus.crt
在生成过程中,会提示你输入一些信息。确保证书的 Common Name
(CN) 对应你的域名或 IP 地址。
5. 更新 Nexus 配置
将生成的证书文件复制到 Nexus 容器中。首先,使用以下命令进入容器:
docker exec -it nexus bash
然后将证书复制到适当位置(例如 /nexus-data/certs
目录)并更改 Nexus 配置:
mkdir /nexus-data/certs
exit # 退出容器
docker cp certs/nexus.crt nexus:/nexus-data/certs/
docker cp certs/nexus.key nexus:/nexus-data/certs/
接下来,更新 nexus.properties
文件以启用 HTTPS。你需要编辑:
docker exec -it nexus vi /nexus-data/nexus.properties
将以下内容添加到文件中:
nexus.https.port=8443
nexus.https.enabled=true
nexus.https.cert.path=/nexus-data/certs/nexus.crt
nexus.https.key.path=/nexus-data/certs/nexus.key
6. 重启 Nexus
保存文件后,重启 Nexus 容器使配置生效:
docker-compose down
docker-compose up -d
7. 访问 Nexus
现在你可以通过 HTTPS 访问 Nexus。打开浏览器,访问 https://<YOUR_DOMAIN_OR_IP>:8443
。注意,由于使用了自签名证书,浏览器可能会提示安全警告,你需要手动添加例外。
类图示例
运行 Nexus 的 Docker 服务可以表示为一个简单的类图:
classDiagram
class Docker {
+start()
+stop()
}
class Nexus {
+start()
+stop()
}
Docker "1" -- "1" Nexus : deploy
结论
通过 Docker 安装 Nexus,并启用 HTTPS 确保了数据传输的安全性。在生产环境中使用时,建议购买并使用受信任的 SSL 证书。希望本文能为你安装和配置 Nexus 提供帮助,祝你在软件管理方面一切顺利!