SUSE Portus是另一个开源镜像库,其特点包括:
-
基于组(Team)和命名空间(Namespace)的细粒度访问权限控制
-
Web UI管理界面
-
可以集成LDAP用户认证系统,也支持OAuth
-
审计日志
-
提供RESTful API,以供外部客户端调用
-
镜像安全漏洞扫描(集成Clair镜像扫描工具)
三、技术经理总结
========
1、公司现在已经在使用Nexus当Maven私服,Nexus3又支持docker,到时用一套私服仓库就可以一举多得。
2、Harbor功能强大,但组件多,配置和运维的复杂度高,增加运维难度。
3、Docker Registry不满足公司需要,而且也没有图形界面管理;SUSE Portus跟Nexus有差不多的功能,最终公司还是选择Nexus3。
四、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
2、拉取镜像
docker pull docker.io/sonatype/nexus3
六、启动容器
======
指定数据卷,防止每次启动容器,容器里的数据丢失,实现容器和虚拟机数据共享
指定虚拟机与容器共享的文件夹
mkdir /usr/local/docker/nexus/nexus-data
需要修改文件夹权限
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
启动容器报错
报错:没有权限创建
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
七、访问并配置nexus
============
打开浏览器,访问 http://:8081/
注:有时启动会比较慢,要等会。。等不及的话,可以看下日志
docker logs nexus
出现这个界面,就说明启动成功了
管理员登录密码在 /usr/local/docker/nexus/nexus-data 中admin开头的文件中,将其拷贝输入即可
输入账号密码后,进入引导
最后
小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。
关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。
这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!
vert/aae70babb533881181ddddc96e8d8c3a.png)
输入账号密码后,进入引导
最后
小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。
关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。
[外链图片转存中…(img-Gn9U8EFz-1714783482859)]
这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!