搭建Maven私服(nexus)与权限管理
一、maven私服(nexus学习)
一、搭建Maven私服(nexus)与权限管理
1、搭建Maven私服(nexus)与权限管理:
http://blog.csdn.net/hellow__world/article/details/71855883
https://www.cnblogs.com/huaxingtianxia/p/6846801.html
2、使用docker搭建nexus
http://beyondvincent.com/2016/09/23/2016-09-23-use-nexus-with-docker/
https://www.jianshu.com/p/dbeae430f29d
3、利用nexus构建maven、docker、npm、gradle私服仓库
https://juejin.im/post/59964f80f265da248b04c32f
二、私服迁移
1、步骤如下:
1. 创建持久化目录 $ mkdir /some/dir/nexus-data && chown -R 200 /some/dir/nexus-data 2. 创建镜像并运行 $ docker run -d -p 8081:8081 --name nexus -v /some/dir/nexus-data:/nexus-data sonatype/nexus 3. 再次运行 $ docker run nexus
2、解决方案:
方案一:旧的容器创建为镜像,然后将数据打包发送到新的服务器上,启动一个新的容器,将数据拷贝到新的容器存储目录下
方案二:将docker相关所有文件打包(主要是容器和镜像数据)发送到新的服务器上
注意事项:
1、docker使用的版本和docker的存储方式
2、尽量服务管理脚本和目录结构相同(最小化问题)
3、docker1.12.6使用的devicemapper存储方式,data大小会很大
# ll -h devicemapper/ total 102G -rw------- 1 root root 100G May 17 15:21 data -rw------- 1 root root 2.0G May 17 15:09 metadata
3、需要知晓的点:
1、nexus挂载存储数据格式 a9d3a5e7-6348-440b-8764-8d717933611d.bytes a9d3a5e7-6348-440b-8764-8d717933611d.properties 2、nexus存储数据的目录 /opt/data/docker/volumes/nexus3_nexus-volume/_data/blobs/default/content [root@v05-nexus-maven content]# tree -L 2 . ├── tmp ├── vol-01 │?? ├── chap-01 │?? ├── chap-02 │?? ├── chap-03 3、nexus3存储数据到es中,以索引展示 4、一天同步一次数据旧服务器数据到新的服务器上
同步需要注意两个数据
1._data/elasticsearch/nexus/nodes 2.根据实际情况而定 同步volumes/nexus3_nexus-volume/_data底下的目录 blobs db elasticsearch generated-bundles health-check instances keystores log tmp
4、初始化数据
一、安装与248相同版本的docker 1.12版本的与更高版本的默认的存储不一致
#修改CentOs7 上Docker默认文件系统DeviceMapper为OverlayFS 1.12默认是DeviceMapper http://www.mamicode.com/info-detail-1364319.html #离线安装docker 1.12.6 https://blog.csdn.net/shida_csdn/article/details/78477362 下载地址:https://yum.dockerproject.org/repo/main/centos/7/Packages/ 本例下载的软件包包括: docker-engine-1.12.6-1.el7.centos.x86_64.rpm docker-engine-selinux-1.12.6-1.el7.centos.noarch.rpm 卸载旧版本 # yum list installed | grep docker docker.x86_64 2:1.13.1-58.git87f2fab.el7.centos @extras docker-client.x86_64 2:1.13.1-58.git87f2fab.el7.centos @extras docker-common.x86_64 2:1.13.1-58.git87f2fab.el7.centos @extras #卸载 yum remove docker.x86_64 docker-client.x86_64 docker-common.x86_64 ##安装指定的版本1.12.6 wget https://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-1.12.6-1.el7.centos.x86_64.rpm wget https://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-selinux-1.12.6-1.el7.centos.noarch.rpm yum localinstall -y docker-engine* ##docker的五种存储方式 http://dockone.io/article/1513 二、更改yum的默认存储位置,更改docker启动脚本即可 拷贝248的启动脚本到新服务器上 cp -rp /usr/lib/systemd/system/docker.service{,.bak} #248上执行,同步docker相关的管理脚本 rsync -av /lib/systemd/system/docker* 10.20.9.191:/lib/systemd/system/ rsync -av /usr/lib/systemd/system/docker* 10.20.9.191:/usr/lib/systemd/system/
方案实施
方案一: 一、9.248容器创建为镜像 docker commit -m "nexus3.3.1" -a "nexus-maven3" dc967f6fe79c ytd-neuxs3.3.1 #sha256:f255df6e54911fce815fff3897ceaba118b3c5cf1747b2514295b2b802186c92 二、启动新的容器,将数据拷贝过去 docker启动参数 docker run -it -d --name ytd-nexus:v3.3.1 --restart=always ytd-nexus:v1 方案二: 一、将docker的工作目录打包,然后发送到新服务器上 根据已使用磁盘情况,确定新服务器存储数据的磁盘大小 二、在新服务器上解压,启动相关的镜像 1、确认是否有原来的所有镜像 docker images 2、确认是否有原来的所有容器 docker ps -a 3、启动相应的容器’ docker start containername/containerid 若启动报如下错误: # docker start dc967f6fe79c Error response from daemon: Unknown runtime specified docker-runc Error: failed to start containers: dc967f6fe79c 解决办法:my solution to this was to follow these steps: Find the ID of the troublesome container: docker ps -a Find its directory in docker工作目录/docker/containers/<ID>/ In there, look for hostconfig.json and remove the docker-runc value of the Runtime property. Restart the docker process sudo systemctl restart docker (if you have systemd) 完美迁移完毕
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具