给技术经理找了几款Docker开源镜像仓库,为什么经理选中了Sonatype Nexus(上)

=========

“Docker官方镜像仓库” 访问速度很慢,Sonatype Nexus允许搭建我们自己的镜像仓库,为实现镜像拉取、推送提供便利。

Sonatype Nexus是一个软件仓库管理器,主要有2.X和3.X两个大版本。2.X版本主要支持Maven、P2、OBR、Yum等仓库软件;3.X版本主要支持Docker、NuGet、npm、Bower、PyPI、Ruby Gems、Apt、Conam、R、CPAN、Raw、Helm等仓库软件,也支持构建工具Maven。

五、拉取镜像

======

1、查找镜像


docker search nexus3

0

2、拉取镜像


docker pull docker.io/sonatype/nexus3

0

六、启动容器

======

指定数据卷,防止每次启动容器,容器里的数据丢失,实现容器和虚拟机数据共享

指定虚拟机与容器共享的文件夹

mkdir /usr/local/docker/nexus/nexus-data

0

需要修改文件夹权限

chmod 777 /usr/local/docker/nexus/nexus-data

“8716903d1912 ”为nexus的镜像ID

docker run -p 8081:8081 --name nexus -v /usr/local/docker/nexus/nexus-data:/nexus-data 8716903d1912

启动容器报错


0

报错:没有权限创建

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:127)

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.

解决方案:

先把容器删除

docker rm nexus

再运行启动新命令

在原先的命令基础上加了“–privileged=true”

docker run -p 8081:8081 --privileged=true --name nexus -v /usr/local/docker/nexus/nexus-data:/nexus-data 8716903d1912

注:–privileged,该参数可以设置是否给docker容器特权,如果该参数为true,使得docker容器内的root权限为宿主机的root权限,而非只是容器内的root权限

看下服务是否启动正常

docker ps

0

七、访问并配置nexus

============

打开浏览器,访问 http://:8081/

注:有时启动会比较慢,要等会。。等不及的话,可以看下日志

docker logs nexus

出现这个界面,就说明启动成功了

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

我想问下大家当初选择做程序员的初衷是什么?有思考过这个问题吗?高薪?热爱?

既然入了这行就应该知道,这个行业是靠本事吃饭的,你想要拿高薪没有问题,请好好磨练自己的技术,不要抱怨。有的人通过培训可以让自己成长,有些人可以通过自律强大的自学能力成长,如果你两者都不占,还怎么拿高薪?

架构师是很多程序员的职业目标,一个好的架构师是不愁所谓的35岁高龄门槛的,到了那个时候,照样大把的企业挖他。为什么很多人想进阿里巴巴,无非不是福利待遇好以及优质的人脉资源,这对个人职业发展是有非常大帮助的。

如果你也想成为一名好的架构师,那或许这份Java核心架构笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。

中高级开发必知必会:

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

架构师是很多程序员的职业目标,一个好的架构师是不愁所谓的35岁高龄门槛的,到了那个时候,照样大把的企业挖他。为什么很多人想进阿里巴巴,无非不是福利待遇好以及优质的人脉资源,这对个人职业发展是有非常大帮助的。

如果你也想成为一名好的架构师,那或许这份Java核心架构笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。

中高级开发必知必会:

[外链图片转存中…(img-FgpUJNg1-1712506189029)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 27
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值