Docker安装Nexus3搭建Maven私服
一、安装Docker(注:新环境【阿里云CentOS 7.9 64位】下安装)
1、 yum包更新到最新
yum update
2、 安装需要的软件包, yum-util 提供yum-confi g-manager功能, 另外两个是devicemapper驱动依赖的
yum -y install yum-utils device-mapper-persistent-data lvm2
3、 设置yum源(配置阿里云镜像)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、 安装docker, 出现输入的界面都按y
yum install -y docker-ce
5、 查看docker版本, 验证是否验证成功
docker -v
二、配置镜像加速器
1、 获取镜像加速器
##可从阿里云服务器账号查找获得(需要注册阿里云账号)。
2、 配置加速器
按照上图中的操作命令执行即可。命令如下:
##创建目录
sudo mkdir -p /etc/docker
##创建文件并写入加速器
sudo tee /etc/docker/daemon.json <<- 'EOF'
{
"registry-mirrors": ["https://pnq56v3h.mirror.aliyuncs.com"]
}
EOF
##重新加载并启动docker
sudo systemctl daemon-reload
sudo systemctl restart docker
3、 启动Docker
##启动
systemctl start docker
##重启
systemctl restart docker
##关闭
systemctl stop docker
三、安装Docker-compose
1、 下载Docker-compose二进制文件
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2、 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
3、 查看docker版本, 验证是否验证成功
docker-compose --version
四、安装nexus3
1、 查询Nexus镜像
docker search nexus3
2、 拉取镜像(选择第一个镜像)
docker pull sonatype/nexus3
3、 修改镜像名称
##选择性步骤,可以不修改
docker tag sonatype/nexus3 nexus3
4、 运行容器
##创建宿主机和容器的目录挂载文件夹
mkdir -p /srv/nexus/data
##给宿主机映射目录赋予权限,不然启动容器时会报错,权限不足
chmod -R 777 /srv/nexus/
##运行容器
docker run -d -p 8081:8081 -p 5000:5000 --name nexus3 -v /srv/nexus/data:/nexus-data --restart=always nexus3
5、 访问并登录Nexus
##访问地址(IP地址换成自己的地址即可):http://192.168.1.10:8081/
注意:首次登录的账户是admin,但是密码是在/srv/nexus/data目录下的一个admin.password文件。通过以下命令可查看:
cat admin.password
6、 拷贝上一步获得的密码,登录系统后,先要求设置新的密码。新密码设置后,即可进入系统。注意:首次登录系统后,上一步的admin.password文件会自动删除。
7、 配置私有仓库地址
vim /etc/docker/daemon.json
##追加以下内容,多条注意增加“,”
{
"insecure-registries": ["192.168.1.10:5000"]
}
##重新加载启动
sudo systemctl daemon-reload
sudo systemctl restart docker
8、 Nexus私服配置
(1)查看我们Nexus私服的地址
点击 maven-public 一行的copy,将地址复制保存
2. 修改maven的settings.xml文件
找到 settings.xml 文件,打开,需要添加两个部分:
第一个部分
配置nexus私服地址,<url>标签的地址是 maven-public 上面复制的地址
<!-- Nexus私服配置 -->
<profile>
<id>dev</id>
<repositories>
<repository>
<id>nexus</id>
<url>http://localhost:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
第二个部分
配置 Nexus私服发布的用户名密码,和私服登录密码一致
<!-- Nexus私服发布的用户名密码 -->
</servers>
<server>
<id>maven-releases</id>
<username>admin</username>
<password>123456</password>
</server>
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>123456</password>
</server>
</servers>
ok,settings.xml的配置就完成了。
2. 配置pom.xml文件
同理复制下图地址
pom.xml新增内容
<!--私服仓库-->
<distributionManagement>
<repository>
<id>maven-releases</id>
<name>Nexus Release Repository</name>
<url>http://localhost:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>maven-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://localhost:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
ok,pom.xml的配置就完成了,可以编写代码测试了(测试成功,步骤略)。
(扩充:若以上配置后,依然无法访问私服,则检查Nexus的角色权限)
第一步:Nexus默认的角色是针对nx的库,而maven的库是没有配置的,可以新建一个“maven-all”的角色,把maven的相关权限添加即可。(如图)
第二步:给用户赋予“maven-all”的角色即可。