搭建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)
    完美迁移完毕
复制代码
posted @   思维无界限  阅读(1158)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· 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工具
点击右上角即可分享
微信分享提示

目录导航