Docker 环境下搭建nexus私服
一、安装docker
1、脚本安装
本机环境CentOS7,用户为root
下载脚本到工作目录
curl -fsSL https://get.docker.com -o get-docker.sh
执行脚本
sudo sh get-docker.sh
执行完会自动退出shell,需要重新登录。
二、安装docker-compose(可选)
1、脚本安装
安装docker-compose的可执行命令到/usr/local/bin
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
增加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
不出意外,本地网络是下载不动的...
可以尝试 Github手动下载,或者开加速器。下载完成后copy到/usr/local/bin,然后增加可执行权限
三、启动docker
service docker start
或
systemctl start docker
四、拉取镜像
1、查找镜像
docker search nexus
一般安装star数最多的版本,目前最新是sonatype/nexus3
2、拉取镜像
docker pull sonatype/nexus3
五、利用docker启动容器(五或六任选其一)
1、最简单的方式:
docker run -p 8081:8081 --name nexus sonatype/nexus3
2、指定数据卷,防止每次启动容器,容器里的数据丢失,实现容器和虚拟机数据共享。
如果有容器和下面要创建的容器同名的话,先删除
docker rm <container_name>
指定虚拟机与容器共享的文件夹
mkdir /usr/local/docker/nexus/nexus-data
启动容器
docker run -p 8081:8081 --name nexus -v /usr/local/docker/nexus/nexus-data:/nexus-data snoatype/nexus3
指定数据卷后启动,可能会报一些权限错误,导致启动不起来。可能会需要修改文件夹权限
chmod 777 /usr/local/docker/nexus/nexus-data
六、利用docker-compose启动nexus容器(五或六任选其一)
1、创建docker-compose.yml
mkdir /usr/local/docker
cd /usr/local/docker
vi docker-compose.yml
docker-compose.yml内容如下:
version: "3.7"
services:
nexus:
restart: "no"
image: sonatype/nexus3
container_name: nexus
ports:
- 8081:8081
volumes:
- /usr/local/docker/nexus/nexus-data:/nexus-data
version : 指定docker-compose语法版本,版本不同,支持的docker也不同
restart
services : 多种服务的根节点
nexus : 服务名随意起,代表要创建的服务
restart : 容器的重启策略,有no、always、on-failure、
unless-stopped四种可选值。
image : 容器依据的镜像
container_name : 容器名
ports : 端口
volumes : 数据卷
注意:yml文件缩进必须用空格
七、访问nexus
1、打开浏览器,访问 http://<host address>:8081/
2、管理员登录密码在 /usr/local/docker/nexus/nexus-data 中admin开头的文件中,将其拷贝输入即可。
3、登录之后会要求修改密码,按要求修改即可。
八、项目发布到nexus的仓库
1、首先修改maven的setting.xml文件,添加用户信息,以便jar包上传私服时进行身份认证,修改内容如下:
<servers>
<server>
<id>maven-releases</id>
<username>admin</username>
<password>112233</password>
</server>
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>112233</password>
</server>
</servers>
id: 为nexus的仓库名称,
username: nexus用户名
password: nexus密码
2、创建maven项目,修改pom.xml
增加发布管理节点
<distributionManagement>
<snapshotRepository>
<id>maven-snapshots</id>
<name>maven-snapshots-repository</name>
<url>http://192.168.172.141:8081/repository/maven-snapshots/</url>
</snapshotRepository>
<repository>
<id>maven-releases</id>
<name>maven-releases-repository</name>
<url>http://192.168.172.141:8081/repository/maven-releases/</url>
</repository>
</distributionManagement>
snapshotRepository: 快照仓库
repository: 发行仓库
id: 与上面的server的id一致
name: 随便
url: 仓库地址,从nexus中可以找到
3、项目打包发布
maven会根据<version/>中是否含有SANPSHOT来选择是发布到快照仓库,还是发行版仓库
项目打包
mvn clean package -Dmaven.test.skip=true
项目发布
mvn deploy
运行完便可在nexus中看到自己的项目了。
九、jar包安装到nexus私服
有时项目开发时,一些maven依赖下载不下来,一直报错。这时,可以手动下载jar包,将其安装到nexus私服,再从nexus解决依赖问题。下面以安装kaptcha为例:
mvn deploy:deploy-file -DgroupId=com.google.code.kaptcha -DartifactId=kaptcha -Dversion=2.3 -Dpackaging=jar -Dfile=D:\kaptcha-2.3.2.jar -Durl=http://192.168.172.141:8081/repository/third/ -DrepositoryId=third
DgroupId: jar包的groupId
Dversion: jar包的版本
Dfile: jar包所在位置
Durl: 仓库地址
DrepositoryId: 仓库名
这里新建了名为third的第三方仓库,注意要在setting.xml增加一个server节点,配置用户名和密码。同时要将third仓库加到maven-public组中,因为第十步要依赖的是maven-public组。将 third加入maven-pulic组后,只要依赖maven-public,便可取到third中的jar包。
十、从nexus下载依赖
在pom.xml中增加如下仓库配置:
<repositories>
<repository>
<id>nexus</id>
<name>Nexus Repository</name>
<url>http://192.168.172.141:8081/repository/maven-public/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus Plugin Repository</name>
<url>http://192.168.172.141:8081/repository/maven-public/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
可以看到 上面的url节点填写的都是maven-public组的url,而maven-releases,maven-snapshots,third都包含在maven-public中,所以能取到三个仓库的内容。
Docker 环境下搭建nexus私服的更多相关文章
- 内网环境下搭建maven私服小技巧
背景 最近接手一个其他公司的项目,因为工程中使用了maven,而且里面有很多他们自己封装很多自己的构件(就是jar.war等等),需要将他们maven私服迁移到我们的私服上去,因为网络环境不通,所以不 ...
- Linux 环境下安装 Nexus 私服存储库
镜像下载.域名解析.时间同步请点击阿里云开源镜像站 一.nexus私服存储库简介 Nexus 是一个强大的maven仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问.,还可以用来创建yum ...
- RabbitMQ:Docker环境下搭建rabbitmq集群
RabbitMQ作为专业级消息队列:如何在微服务框架下搭建 使用组件 文档: https://github.com/bijukunjummen/docker-rabbitmq-cluster 下载镜像 ...
- Docker环境下搭建DNS LVS(keepAlived) OpenResty服务器简易集群
现在上网已经成为每个人必备的技能,打开浏览器,输入网址,回车,简单的几步就能浏览到漂亮的网页,那从请求发出到返回漂亮的页面是怎么做到的呢,我将从公司中一般的分层架构角度考虑搭建一个简易集群来实现.目标 ...
- docker环境下搭建python3.6
前言:当我们在一台电脑上搭建了python3.6的环境,下次换了个电脑或者换成linux的系统了又得重新搭建一次,设置环境变量,下载pip等操作.所以使用docker 一.安装python步骤: 1. ...
- Linux_Centos中搭建nexus私服
1.在Linux下搭建Nexus私服 1).下载并且解压 下载 nexus-2.11.2-03-bundle.zip unzip nexus-2.11.2-03-bundle.z ...
- Ubuntu server下搭建Maven私服Nexus
Ubuntu server下搭建Maven私服Nexus Maven私服Nexus的作用,主要是为了节省资源,在内部作为maven开发资源共享服务器来使用. 1.下载 通过root用户进去Ubuntu ...
- windows 环境下搭建docker私有仓库
windows 环境下搭建docker私有仓库 1.在公用仓库中pull仓库镜像 docker pull regitry 2.启动仓库镜像 //-d意思是后台运行,-p是做端口映射,这里是将本地的50 ...
- Linux下建立Nexus私服
Linux下建立Nexus私服 要安装3个东西,然后配置私服: 1.JDK 2.Maven 3.Nexus 然后配置 1.JDK的安装 下载JDK安装包,格式为RPM格式,安装即可 安装程序 #rpm ...
随机推荐
- Android零基础入门第81节:Activity数据传递
在Android开发中,经常要在Activity之间传递数据.前面也学习了Activity和Intent相关基础,接下来一起来学习Activity的数据传递. 一.简介 通过前面的学习知道,Inten ...
- 可以用GetObjectProp来获取对象的属性
原来可以用GetObjectProp来获取对象的属性,还有这用法,哈哈哈哈…… var SL: TStrings; UseDBTools: Boolean;begin SL := nil; if Me ...
- VS2010使用c++、gSOAP创建WebService 图文教程
VS2010使用c++.gSOAP创建的WebService 图文教程 环境 操作系统:Windows 7gsoap版本:2.8.32C++编译器/开发环境:Visual Studio 2010 gS ...
- python的内存分配
一.前言 大多数编译型语言,变量在使用前必须先声明,其中C语言更加苛刻:变量声明必须位于代码块最开始,且在任何其他语句之前.其他语言,想C++和java,允许“随时随地”声明变量,比如,变量声明可以在 ...
- 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)
一.概述 面向过程:根据业务逻辑从上到下写代码 函数式:将具有一些功能的代码封装到函数中,需要的时候调用即可 面向对象:对函数进行分类和封装,让开发更方便,更快捷 Java和C#只支持面型对象编程,, ...
- flask相关使用
一.手动创建一个干净的含有蓝图的flask项目目录 在init.py中 from flask import Flaskmy_app=Flask(__name__)def create_app() ...
- bootstrap模态框篇【遇到的问题】
<div class="modal fade" tabindex="-1" role="dialog"> <div cl ...
- Kafka笔记3
向Kafka写入消息从创建一个ProducerRecord对象开始,ProducerRecord需要包含目标主题和要发送的内容,我们还可以指定键或分区,在发送ProducerRecord对象时,生产者 ...
- 音视频技术“塔尖”之争,网易云信如何C位出道?
音视频技术“塔尖”之争,网易云信如何C位出道? 社交+美颜.抖音短视频.在线狼人杀.直播竞答.子弹短信……,过往两三年间,互联网新产品和新玩法层出不穷,风口不断切换.这些爆红的网络应用背后,都有一些共 ...
- 关于exe4j打包问题
一.eclipse导出jar Export-->Runnable JAR file 这里有两种情况: 选择 Package required libraries into generated j ...