Docker Nexus

1、查找镜像

  1. docker search nexus

image.png

2、拉取镜像

  1. docker pull sonatype/nexus3

image.png

3、启动容器

  1. docker run -d -p 8081:8081 -p 8082:8082 -p 8083:8083 -v /etc/localtime:/etc/localtime --name nexus3 sonatype/nexus3

-v /home/nexus/nexus-data:/nexus-data 将数据挂载到宿主机
## 8081:nexus3网页端
## 8082:docker(hosted)私有仓库,可以pull和push
## 8083:docker(proxy)代理远程仓库,只能pull

查看启动日志

  1. docker logs nexus3

4、开放端口

  1. firewall-cmd --zone=public --permanent --add-port=8081/tcp
  2. firewall-cmd --zone=public --permanent --add-port=8082/tcp
  3. firewall-cmd --zone=public --permanent --add-port=8083/tcp
  4. 重新启动防火墙
  5. systemctl restart firewalld

5、访问Nexus服务

http://localhost:8081/
点击右上角登录 账号密码:admin/admin123
也可以通过docker exec命令进入容器中查看admin帐号的密码

  1. docker exec -it nexus3 /bin/bash
  2. vi /nexus-data/admin.password
  3. exit

image.png

6、配置Nginx端口转发时的注意事项

:::tips 下面这两处需要配置为服务器的外网IP,否则会在加载静态资源时从该配置的主机名进行加载,如果配置为其他名称则会加载不到静态资源,会出现无法访问的问题 ::: image.png

7、设置开机启动

  1. docker update --restart=always nexus3

8、在项目中配置使用新的仓库地址

  1. <repositories>
  2. <repository>
  3. <id>maven-nexus</id>
  4. <name>maven-nexus</name>
  5. <url>http://192.168.0.129:8081/repository/maven-public/</url>
  6. <releases>
  7. <enabled>true</enabled>
  8. </releases>
  9. <snapshots>
  10. <enabled>true</enabled>
  11. </snapshots>
  12. </repository>
  13. </repositories>

9、Maven 配置使用私服(下载插件)

  1. <pluginRepositories>
  2. <pluginRepository>
  3. <id>maven-nexus</id>
  4. <name>maven-nexus</name>
  5. <url>http://192.168.0.129:8081/nexus/repository/maven-public/</url>
  6. <releases>
  7. <enabled>true</enabled>
  8. </releases>
  9. <snapshots>
  10. <enabled>true</enabled>
  11. </snapshots>
  12. </pluginRepository>
  13. </pluginRepositories>

10、Maven 配置使用私服(发布依赖)

(1)首先修改 setting.xml 文件

指定 releases 和 snapshots server 的用户名和密码:

  1. <servers>
  2. <server>
  3. <id>releases</id>
  4. <username>admin</username>
  5. <password>123</password>
  6. </server>
  7. <server>
  8. <id>snapshots</id>
  9. <username>admin</username>
  10. <password>123</password>
  11. </server>
  12. </servers>

(2)配置项目的 pom.xml文件

在项目的 pom.xml 文件中加入 distributionManagement 节点: :::tips 注意:repository 里的 id 需要和上一步里的 server id 名称保持一致。 :::

  1. <distributionManagement>
  2. <repository>
  3. <id>releases</id>
  4. <name>Releases</name>
  5. <url>http://192.168.0.129:8081/repository/maven-releases/</url>
  6. </repository>
  7. <snapshotRepository>
  8. <id>snapshots</id>
  9. <name>Snapshot</name>
  10. <url>http://192.168.0.129:8081/repository/maven-snapshots/</url>
  11. </snapshotRepository>
  12. </distributionManagement>