安装docker,并在docker下用nexus3搭建maven私服
一、前言
前几天阿里云服务器(低配)86块一年,于是赶紧入手了,主要是拿来练练手,今天就是在这个这台服务器上练了下手搭了一个docker和nexus,当自己的私服用,想着平时可以把一些自己写的一些常用的工具、配置类搞上去。现在梳理一下搭建的流程把。
二、安装docker
(一) 安装依赖
yum install -y yum-utilsyum install -y device-mapper-persistent-data
yum install -y lvm2
(二) 安装 Docker
运行以下命令:
yum install docker
Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS 系统上可以使用这套脚本安装:
curl -fsSL get.docker.com -o get-docker.shsh get-docker.sh
然后执行docker version
查看是否安装完成,如图:
然后启动 Docker:
systemctl enable dockersystemctl start docker
(三)配置镜像加速
另外,我们知道,类似maven,如果我们在国内每次都从官方仓库里面去下镜像是很慢的,所以一般也需要配置镜像加速。
vi /etc/docker/daemon.json
打开配置为:
# 填写自己的加速器地址{
"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
注意了,我是使用的阿里云镜像加速,实际上还有其他站点,阿里云加速地址需要去阿里云登录后获取,获取地址为阿里云镜像加速地址获取,如图:
把这个地址复制到daemon.json就行了。然后重启daemon和docker服务:
systemctl daemon-reloadsystemctl restart docker
(四)docker常用命令总结
概念性的知识我就不介绍了,我也正在学习,这里总结一下常用命令:
- docker search 关键词:搜索镜像
- docker pull xxx:下载镜像
- docker images:查看本地有哪些镜像
- docker rm container_name/container_id:删除镜像
- docker run -t -i container_name/container_id /bin/bash:运行容器中的镜像,并且调用镜像里面的 bash
- docker ps -a:查看有哪些容器在运行
- docker start container_name/container_id:运行容器
- docker stop container_name/container_id:停止容器
- docker restart container_name/container_id:重启容器
- docker attach container_name/container_id:进入容器
- exit:退出容器
- docker rm container_name/container_id:删除容器
三、docker下安装nexus3
(一)查找nexus3镜像
docker search nexus3
我是下的这个:
(二)拉取镜像
docker pull docker.io/sonatype/nexus3
看拉下来没有可以执行:
docker images
(三)执行镜像
docker run -d -p 8081:8081 --name nexus3 --restart=always sonatype/nexus3
这里的参数分别表示:
- -d:表示在docker守护线程运行这个镜像;
- -p:表示绑定端口,前面的端口表示宿主机端口,后面的表示容器端口,如果宿主机的8081端口已经被占用了,那么可以改为8082:8081,为什么后面的是8081端口?这是Nexus服务自己设定的,可以修改,但是跑docker的话没必要了,下面都是以8081为nexus的端口;
- --restart=always:这个指定docker重启启动容器,当服务器或者docker进程重启之后,nexus容器会在docker守护进程启动后由docker守护进程启动容器,容器的重启策略很多,大家可以自己去看看对应的资料;
- --name <container-name>:这里是指定了容器建立后的名称;
- 最后面的sonatype/nexus3是镜像名。
如果需要查看日志执行:
docker logs nexus3
(四)进入nexus
访问你的服务器地址+端口8081进入nexus管理后台。
这里可能会遇到两个问题:
第一个问题是阿里云服务器端口必须要配置一下外网才可以访问。
第二个问题是密码错误的问题。
默认nexus的账号和密码是admin/admin123,但是不知道为什么可能是版本原因我这里下的nexus需要默认密码要进入容器内去找,怎么查看勒,执行:
docker exec -it 容器id或者容器名 /bin/bash
容器id或容器名通过docker ps -a
查看。
然后cd到nexus-data目录,cat admin.password,查看密码:
将密码复制出来,进行登录就可以了。
(五)创建仓库
然后登录nexus,根据需要创建自己的仓库或者就用默认的仓库也行,我是创建了一个新的仓库,如果需要创建依次点击如图:
选择maven2(hosted)
不同的类型区别是:
- hosted:本地存储。像官方仓库一样提供本地私库功能
- proxy:提供代理其它仓库的类型
- group:组类型,能够组合多个仓库为一个地址提供服务
然后创建仓库,用默认设置就行:
(六)将仓库地址copy出来
接下来把刚刚的仓库地址copy出来就行了。
四、设置maven的setting.xml以及pom文件并上传jar包
(一)配置setting.xml
注意了,这里的id必须与设定下载jar主仓库的<repositories>标签和设定发布仓库的<distributionManagement>标签内的id保持一致。
设置下载Jar仓库可以在Pom里面写也可以在setting.xml里面写,在setting.xml写表示全局,我是在setting.xml里面写的:
<profiles>标签下添加:
<profile> <id>my-nexus</id>
<repositories>
<repository>
<id>my-nexus</id>
<name>my-nexus</name>
<url>刚刚复制的仓库地址</url>
</repository>
</repositories>
</profile>
<activeProfiles>标签下添加:
<activeProfile>my-nexus</activeProfile>
然后如果需要上传到私服,配置pom:
<distributionManagement> <repository>
<id>my-nexus</id>
<url>你的仓库地址</url>
</repository>
</distributionManagement>
以上保证repository标签下的Id和server下的id一样就行。
配置好了就可以使用maven打包了,我是用的idea自带的maven插件直接deploey就行了:
以上是 安装docker,并在docker下用nexus3搭建maven私服 的全部内容, 来源链接: utcz.com/z/510419.html