docker search nexus
结果如下:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
sonatype/nexus3 Sonatype Nexus Repository Manager 3 787
sonatype/nexus Sonatype Nexus 432 [OK]
clearent/nexus 22
sonatype/nexus-iq-server Sonatype Nexus IQ Server 15
bradbeck/nexus-https Dockerized version of Nexus Repo Manager 3 w… 13 [OK]
baselibrary/nexus ThoughtWorks Docker Image: nexus 7 [OK]
cavemandaveman/nexus Sonatype Nexus container 6 [OK]
frekele/nexus docker run --rm --name nexus -p 8081:8081 fr… 4 [OK]
shifudao/nexus3 clone from nexus3 image but based from openj… 4 [OK]
fabric8/nexus 3 [OK]
openshiftdemos/nexus Sonatype Nexus with JBoss Enterprise reposit… 2
fxinnovation/nexus3 Sonatype Nexus 3 in a container 1 [OK]
cloud4t0r/nexus lastest nexus image optimized for ECS/AWS 1
nexusstats/nexus-stats 1
fjudith/nexus Dockerized Nexus Repository Manager based on… 0 [OK]
cityofsurrey/nexus 0
ocadotechnology/nexus-data-pipeline-backup Backup Nexus3 with AWS Data Pipeline and EFS… 0 [OK]
lokkju/nexus3-github-auth Sonatype Nexus 3 with Github authentication … 0 [OK]
zbkio/nexus-noroot Nexus for Openshift 0
grundt/nexus-arm32v7 For nexus docker image with arm32v7 CPU 0
ocadotechnology/nexus-configurator see: https://github.com/ocadotechnology/nexu… 0
jenkinsxio/nexus 0
trialgrid/nexus-docker Nexus docker image 0
rorellanac/nexusfrontend Repositorio nexus 0
nexus166/gobld https://github.com/nexus166/gobld 0
2.拉取 nexus3 镜像
docker pull sonatype/nexus3
docker images
结果如下:
REPOSITORY TAG IMAGE ID CREATED SIZE
sonatype/nexus3 latest 640570fd0ff5 11 days ago 642MB
启动命令:
docker run -d --name nexus3_yuanx \
--restart=always \
-p 8081:8081 \
-p 8082:8082 \
-p 8083:8083 \
-p 8084:8084 \
-p 8085:8085 \
-v /home/docker/nexus/data:/nexus-data \
sonatype/nexus3
命令参数说明
docker run ## 容器启动命令
-d ## 后台启动
--name nexus3_yuanx ## 容器命名
-p 8081:8081 ## 宿主机映射端口:容器端口
--restart=always ## 容器重启策略
-v /home/docker/nexus/data:/nexus-data ## 容器数据卷挂载 宿主器绝对路径:容器绝对路径
sonatype/nexus3 ## 指定容器启动所用镜像
端口映射说明:
nexus3 启动的时候指定了多个端口映射,其中8081是nexus服务访问端口,8082~8084是仓库端口。
docker ps
结果如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7d80862c0962 sonatype/nexus3 "sh -c ${SONATYPE_DI…" 5 hours ago Up 5 hours 0.0.0.0:8081-8085->8081-8085/tcp nexus3_yuanx
查看容器 STATUS
属性,如上所示说明容器已正常启动。
docker logs nexus3_yuanx
结果如下:
Warning: Cannot open log file: ../sonatype-work/nexus3/log/jvm.log
Warning: Forcing option -XX:LogFile=/tmp/jvm.log
java.io.FileNotFoundException: ../sonatype-work/nexus3/tmp/i4j_ZTDnGON8hezynsMX2ZCYAVDtQog=.lock (No such file or directory)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(RandomAccessFile.java:316)
at java.io.RandomAccessFile.(RandomAccessFile.java:243)
at com.install4j.runtime.launcher.util.SingleInstance.check(SingleInstance.java:72)
at com.install4j.runtime.launcher.util.SingleInstance.checkForCurrentLauncher(SingleInstance.java:31)
at com.install4j.runtime.launcher.UnixLauncher.checkSingleInstance(UnixLauncher.java:88)
at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:67)
java.io.FileNotFoundException: /nexus-data/karaf.pid (Permission denied)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.(FileOutputStream.java:213)
at java.io.FileOutputStream.(FileOutputStream.java:101)
at org.apache.karaf.main.InstanceHelper.writePid(InstanceHelper.java:126)
at org.apache.karaf.main.Main.launch(Main.java:243)
at org.sonatype.nexus.karaf.NexusMain.launch(NexusMain.java:113)
at org.sonatype.nexus.karaf.NexusMain.main(NexusMain.java:52)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:85)
at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:69)
java.lang.RuntimeException: /nexus-data/log/karaf.log (No such file or directory)
at org.apache.karaf.main.util.BootstrapLogManager.getDefaultHandlerInternal(BootstrapLogManager.java:102)
at org.apache.karaf.main.util.BootstrapLogManager.getDefaultHandlersInternal(BootstrapLogManager.java:137)
at org.apache.karaf.main.util.BootstrapLogManager.getDefaultHandlers(BootstrapLogManager.java:70)
at org.apache.karaf.main.util.BootstrapLogManager.configureLogger(BootstrapLogManager.java:75)
at org.apache.karaf.main.Main.launch(Main.java:244)
at org.sonatype.nexus.karaf.NexusMain.launch(NexusMain.java:113)
at org.sonatype.nexus.karaf.NexusMain.main(NexusMain.java:52)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:85)
at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:69)
Caused by: java.io.FileNotFoundException: /nexus-data/log/karaf.log (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.(FileOutputStream.java:213)
at org.apache.karaf.main.util.BootstrapLogManager$SimpleFileHandler.open(BootstrapLogManager.java:193)
at org.apache.karaf.main.util.BootstrapLogManager$SimpleFileHandler.(BootstrapLogManager.java:182)
at org.apache.karaf.main.util.BootstrapLogManager.getDefaultHandlerInternal(BootstrapLogManager.java:100)
... 12 more
Error creating bundle cache.
Unable to update instance pid: Unable to create directory /nexus-data/instances
mkdir: cannot create directory '../sonatype-work/nexus3/log': Permission denied
mkdir: cannot create directory '../sonatype-work/nexus3/tmp': Permission denied
OpenJDK 64-Bit Server VM warning: Cannot open file ../sonatype-work/nexus3/log/jvm.log due to No such file or directory
Warning: Cannot open log file: ../sonatype-work/nexus3/log/jvm.log
Warning: Forcing option -XX:LogFile=/tmp/jvm.log
java.io.FileNotFoundException: ../sonatype-work/nexus3/tmp/i4j_ZTDnGON8hezynsMX2ZCYAVDtQog=.lock (No such file or directory)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(RandomAccessFile.java:316)
at java.io.RandomAccessFile.(RandomAccessFile.java:243)
at com.install4j.runtime.launcher.util.SingleInstance.check(SingleInstance.java:72)
at com.install4j.runtime.launcher.util.SingleInstance.checkForCurrentLauncher(SingleInstance.java:31)
at com.install4j.runtime.launcher.UnixLauncher.checkSingleInstance(UnixLauncher.java:88)
at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:67)
java.io.FileNotFoundException: /nexus-data/karaf.pid (Permission denied)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.(FileOutputStream.java:213)
at java.io.FileOutputStream.(FileOutputStream.java:101)
at org.apache.karaf.main.InstanceHelper.writePid(InstanceHelper.java:126)
at org.apache.karaf.main.Main.launch(Main.java:243)
at org.sonatype.nexus.karaf.NexusMain.launch(NexusMain.java:113)
at org.sonatype.nexus.karaf.NexusMain.main(NexusMain.java:52)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:85)
at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:69)
java.lang.RuntimeException: /nexus-data/log/karaf.log (No such file or directory)
at org.apache.karaf.main.util.BootstrapLogManager.getDefaultHandlerInternal(BootstrapLogManager.java:102)
at org.apache.karaf.main.util.BootstrapLogManager.getDefaultHandlersInternal(BootstrapLogManager.java:137)
at org.apache.karaf.main.util.BootstrapLogManager.getDefaultHandlers(BootstrapLogManager.java:70)
at org.apache.karaf.main.util.BootstrapLogManager.configureLogger(BootstrapLogManager.java:75)
at org.apache.karaf.main.Main.launch(Main.java:244)
at org.sonatype.nexus.karaf.NexusMain.launch(NexusMain.java:113)
at org.sonatype.nexus.karaf.NexusMain.main(NexusMain.java:52)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:85)
at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:69)
Caused by: java.io.FileNotFoundException: /nexus-data/log/karaf.log (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.(FileOutputStream.java:213)
at org.apache.karaf.main.util.BootstrapLogManager$SimpleFileHandler.open(BootstrapLogManager.java:193)
at org.apache.karaf.main.util.BootstrapLogManager$SimpleFileHandler.(BootstrapLogManager.java:182)
at org.apache.karaf.main.util.BootstrapLogManager.getDefaultHandlerInternal(BootstrapLogManager.java:100)
... 12 more
Error creating bundle cache.
Unable to update instance pid: Unable to create directory /nexus-data/instances
启动nexus时,为容器挂在了数据卷 -v /home/docker/nexus/data:/nexus-data
,但是并没有对数据卷目录进行授权,容器没有权限操作宿主机文件夹。
修改宿主机 /home/docker/nexus/data
文件夹权限,这里先授予所有权限。
chmod 777 /home/docker/nexus/data/
之后再重启容器
docker restart 64f5edfbc768
访问地址:http://宿主机IP:8081
默认账号:admin
默认密码:admin123 或者 /var/lib/admin.apssword
Docker 方式运行 Nexus3 登陆密码不为 admin123,使用默认账号密码登录直接报错:
其实登录时候在登录框已经有提示:
Your admin user password is located in /nexus-data/admin.password on the server.`
进入容器
docker exec -it 容器id /bin/bash
命令参数说明
-it:这是2个参数
-i:保持标准输入打开,默认为 false
-t:分配一个伪终端,默认为 false
输出密码
cat /nexus-data/admin.password
结果如下:
bash-4.4$ cat /nexus-data/admin.password
2a333e85-37eb-4bf6-beab-a3977464dd4cbash-4.4$
注意:密码为2a333e85-37eb-4bf6-beab-a3977464dd4c,后面的bash-4.4$不是密码内容。
退出容器
exit
扩展学习:Nexus私服添加用户名密码凭据访问的配置方法