1、安装 Docker
Docker 官方建议在 Ubuntu 中安装,因为 Docker 是基于 Ubuntu 发布的,而且一般 Docker 出现的问题 Ubuntu 是最先更新或者打补丁的。在很多版本的 CentOS 中是不支持更新最新的一些补丁包的。
但是这里还是使用CentOS7.X系统做演示,在 CentOS6.x 的版本中,安装前需要安装其他很多的环境而且Docker 很多补丁不支持更新
(1)yum 包更新到最新
sudo yum update
(2)安装需要的软件包, yum-util 提供 yum-config-manager 功能,另外两个是 devicemapper 驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
(3)设置 yum 源为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(4)安装 docker
sudo yum install docker-ce
(5)安装后查看 docker 版本
docker -v
2、拉取并运行nexus镜像
(1)启动docker
systemctl start docker
(2)拉取镜像nexus最新版本的镜像
docker pull sonatype/nexus3:latest
(3)查看镜像 可以看到刚才拉取的镜像
docker images
(4)运行镜像
1.在运行之前先创建一个目录用来存放 Nexus 持久化数据。
mkdir -p /data/nexus
2.Docker 命令运行 Nexus
docker run -d -p 8081:8081 --name nexus -v /data/nexus:/nexus-data sonatype/nexus3:latest
(5)可能会遇到的问题
讲道理本应该可以正常运行的访问http://服务器ip:8081可以进入仓库,但是我在访问的时候连不上,发现容器一直在重启
1.检查防火墙,先关闭防火墙,发现防火墙压根就没开,与防火墙无瓜
2.打开日志看一下
docker container logs nexus
"mkdir: cannot create directory '../sonatype-work/nexus3/log': Permission denied\n","stream":"stderr"
"mkdir: cannot create directory '../sonatype-work/nexus3/tmp': Permission denied\n","stream":"stderr"
"OpenJDK 64-Bit Server VM warning: Cannot open file ../sonatype-work/nexus3/log/jvm.log due to No such file or directory\n","stream":"stderr","time":"2019-12-16T12:52:43.714785419Z"
报这种错误,就很尴尬,说没有权限,我们赋予/data/nexus
文件夹权限
chown -R 200 /data/nexus
重新启动容器后,能正常运行
docker stop neuxs
docker start neuxs
3、仓库使用
右上角点击Sign in ,某些版本的账号密码是admin admin123
但是有的版本密码是在系统文件里面的 /nexus-data/admin.password
此时需要进入到容器里面去查看密码(这里会让你设置新的密码,我将账号密码都改成了admin)
docker exec -it nexus /bin/bash
cd nexus-data
vi admin.password
将密码复制出来输入到浏览器即可
4、上传镜像
(1)得到上传的仓库的url
(2)在build.gradle中添加上传配置
uploadArchives {
repositories.mavenDeployer {
// 本地仓库路径
//repository(url: uri('../repo'))
repository(url: uri('http://192.168.178.128:8081/repository/maven-releases/')){
authentication(userName: "admin", password: "admin")
}
// 唯一标识
pom.groupId = "com.wahaha"
// 项目名称
pom.artifactId = "hhh.android"
// 版本号
pom.version = "1.0.0"
}
}
(3)上传
此时已经上传成功
(4)仓库的使用
在repositories标签下添加刚配置的maven仓库路径
maven {
//本地
//url uri('repo')
url uri('http://192.168.178.128:8081/repository/maven-releases/')
}
此时可在项目中使用仓库中的包