Docker,使用 Sonatype Nexus3

获取镜像

获取 docker Sonatype Nexus3 镜像,最新版本

最新版本
1
docker pull sonatype/nexus3
指定版本
1
docker pull sonatype/nexus3:3.30.1

预期

docker 环境 目录 /nexus-data 映射宿主目录 /opt/maven/sonatype-work-docker/nexus3
docker 环境 默认端口 8081 映射宿主端口 5430

映射宿主目录中存在文件和目录的情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 先启动一个默认的 sonatype/nexus3 容器
docker run -p 5430:8081 --name nexus3 sonatype/nexus3:3.30.1

# 进入对应容器
docker exec -i -t xxxxxx /bin/bash

# 查询用户和用户组的 ID
cat /etc/passwd
nexus:x:200:200:Nexus Repository Manager user:/opt/sonatype/nexus:/bin/false
# sonatype/nexus3 容器中,默认的 nexus 对应的用户id为 200

# 删除这个默认容器
docker container rm -f xxx

# 修改宿主目录的 owner
chown -R 200:200 /opt/maven/sonatype-work-docker/nexus3

运行

直接运行
1
2
3
4
docker run -p 5430:8081 --name nexus3 sonatype/nexus3:3.30.1

#docker 环境 自定义端口 5432 映射宿主端口 5432
docker run -p 5432:5432 --name nexus3 -v /opt/maven/sonatype-work-docker/nexus3:/nexus-data sonatype/nexus3:3.30.1
后台运行
1
2
3
4
5
6
7
8
9
# sonatype/nexus3 默认用户 admin ,密码存储在数据文件夹下的 admin.password 
docker run -d -p 5430:8081 --name nexus3 --restart=always sonatype/nexus3:3.30.1

# 映射宿主目录 /opt/maven/sonatype-work-docker/nexus3
docker run -d -p 5430:5432 --name nexus3 --restart=always -v /opt/maven/sonatype-work-docker/nexus3:/nexus-data sonatype/nexus3:3.30.1


#调整 Java VM 参数
docker run -d -p 5430:5432 --name nexus3 --restart=always -v /opt/maven/sonatype-work-docker/nexus3:/nexus-data -e INSTALL4J_ADD_VM_PARAMS="-Xms2g -Xmx2g -XX:MaxDirectMemorySize=3g" sonatype/nexus3:3.30.1

停止-需要时间关闭数据库

1
docker stop --time=120 nexus3