参考
- [Maven私有仓库搭建以及使用](https://www.cnblogs.com/wuwei928/p/10338307.html)
- [Docker: connection reset by peer](https://blog.csdn.net/weixin_33895475/article/details/92578413)
前提
虚拟机上安装centos7,centos7上安装了docker
目录
安装步骤
-
docker search nexus 使用该命令寻找可用的nexus版本
-
docker pull docker.io/sonatype/nexus3 拉取相关的镜像
-
mkdir -p /opt/nexus-data:/nexus-data 创建nexus 相关需要的目录,然后使用 chown -R 200 /opt/nexus-data:/nexus-data 命令,修改文件夹相关权限信息
-
使用 docker run -d --net="host" --name nexus3 --restart=always -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 8084:8084 -p 8085:8085 -v /opt/nexus-data:/nexus-data sonatype/nexus3 命令启动
- 8081:8081表示宿主机端口和容器端口映射
- 如果有使用 NEXUS_CONTEXT=nexus 表示在访问 Nexus 后台 web 时,需要带上 nexus 进行访问,如 http://ip:8081/nexus
- /opt/nexus-data:/nexus-data :/nexus-data 将宿主机目录挂载为卷
安装后的校验
通过 http://ip:8081 进行访问,成功加载相关界面。
或者 在虚拟机上 curl http://localhost:8081 看是否有相关结果返回
部署过程中遇到的问题
1. 安装后无法通过虚拟机外部的浏览器访问nexus主页
一开始以为是虚拟机的防火墙问题,于是通过 firewall-cmd --zone=public --permanent --add-port=8081/tcp 命令开放相关端口,可是还是访问不了。
接着,通过 netstat -lntp 命令,查看 监听的端口信息,发现该监听的端口都有监听,只不过在未添加 --net="host" 参数之前,docker映射出来的监听端口是tcp6,怀疑和这个有关系,一顿操作后,还是未解决。
接着,仔细观察,发现在虚拟机上 curl http://localhost:8081,报错 Connection reset by peer ,于是顺着这个去找,发现网上说 这种报错往往是 因为docker服务容器内部并没有监听指定的端口,而docker run时却指定了该端口,目前暂时未找到彻底解决的方法,暂时通过在命令中加上 --net="host" 命令解决。