docker部署nexus并启用https方式
更新时间:2023年08月31日 09:03:58 作者:songjxin
这篇文章主要介绍了docker部署nexus并启用https方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
docker部署nexus并启用https
实现目标
- docker 运行nexus
- nexus docker仓库支持https
- docker client只需要把ca证书放到docker目录下,不需要整个机器信任。
- nexus用 ip:port的方式访问
构建nexus镜像
生成证书
# 这里的ip换为nexus运行机器的ip echo subjectAltName = IP:10.110.25.191 > extfile.cnf # 生成ca openssl genrsa -out ca.key 2048 openssl req -x509 -new -nodes -key ca.key -days 5000 -out ca.crt # 生成server证书 openssl genrsa -out server.key 2048 openssl req -new -key server.key -subj "/CN=10.110.25.191" -out server.csr openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out server.crt -days 5000 # 将证书导出成pkcs格式 # 这里需要输入密码 用password,如果不用这个,需要修改镜像里的${jetty.etc}/jetty-https.xml,具体操作参考百度。 openssl pkcs12 -export -out keystore.pkcs12 -inkey server.key -in server.crt
构建镜像
FROM sonatype/nexus3 USER root COPY keystore.pkcs12 /keystore.pkcs12 RUN keytool -v -importkeystore -srckeystore keystore.pkcs12 -srcstoretype PKCS12 -destkeystore keystore.jks -deststoretype JKS -storepass password -srcstorepass password &&\ cp keystore.jks /opt/sonatype/nexus/etc/ssl/ USER nexus
docker build ./ -t nexus-https
启动
# 8443是nexus ui https访问端口 # 8081是nexus ui http访问端口 # 8082将要用来作为docker代理docker hub的端口 # 8083将要用来作为docker本地仓库的端口 docker run -d --restart=always -p 8443:8443 -p 8081:8081 -p 8082:8082 -p 8083:8083 --name nexus3 -v /docker/nexus/nexus-data:/nexus-data nexus-https:latest # 修改nexus的目录权限 chmod -R 777 /docker # 等容器启动,可以正常访问页面之后修改配置文件,开启ssl vim /docker/nexus/nexus-data/etc/nexus.properties # 内容如下: # Jetty section application-port-ssl=8443 application-port=8081 application-host=0.0.0.0 nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml,${jetty.etc}/jetty-https.xml nexus-context-path=/${NEXUS_CONTEXT} #Nexus section nexus-edition=nexus-pro-edition nexus-features=\ nexus-pro-feature nexus.clustered=false # 重启容器 docker restart nexus3
创建仓库
设置realms
在realms中把 docker bearer token realm 选为 active
创建docker的代理仓库,代理docker hub
设置 -> repositories -> create repositories -> docker(proxy)
把https的选项选上,端口号填写8082,Docker index 选择Docker Hub,其他的按照默认填写
client访问
在client端的服务器上创建 /etc/docker/certs.d/<nexus ip>:8082/文件夹。
将生成ca证书步骤生成的 ca.crt复制到 这个文件夹中。
docker login 试一下。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
使用Docker搭建Vsftpd 的 FTP 服务的详细过程
FTP 基础FTP 需要两个端口,一个是数据端口,一个是控制端口,这篇文章主要介绍了使用Docker搭建Vsftpd的FTP服务,需要的朋友可以参考下2022-08-08Docker compose up -d与Docker restart的区别
本文主要介绍了Docker compose up -d与Docker restart的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-07-07Docker本地部署Firefox火狐浏览器并远程访问的流程
在Docker中打开Firefox意味着我们将在一个Docker容器中运行Firefox浏览器,下面是一个简单的示例,演示如何在Docker中打开Firefox,本次实践部署环境为本地环境,感兴趣的朋友一起看看吧2023-11-11
最新评论