动手前查询网上操作流程就是打包原docker或者K8S内nexus程序和nexus-data数据目录,覆盖docker内程序和nexus-data数据目录,重启程序就可成功。
开始第一次迁移操作,通过K8S cp 下载数据,直接覆盖docker 运行的nexus,结果失败。
失败原因分析,
1,对比K8S数据目录内条目,明显docker机器上数据目录不一致。
2,考虑到docker启动时会写入程序目录 /opt/sonatype/nexus和数据目录 /opt/sonatype/sonatype-work/nexus3 ==》/nexus-data ,之后打包程序覆盖导致数据和K8S上nexus不一致导致失败。
之后成功的迁移步骤
1,启动nexus docker镜像,等待启动完成。
#docker run -d \
--privileged \
--restart=always \
-p 9981:8081 \
--name nexus \
-v /opt/nexus:/nexus-data \
sonatype/nexus3
2,删除程序目录内数据,并用旧nexus 的程序目录内数据覆盖
#docker exec -it nexus /bin/bash
#/opt/sonatype/nexus/bin/nexus stop #先停止nexus
#cd /opt/sonatype/nexus
#rm -rf ./*
#/bin/cp -a -r /tmp/nexus/* ./ #/tmp/nexus 目录为旧nexus服务器上程序目录 /opt/sonatype/nexus打包的数据
#exit
3,停止nexusdocker镜像,删除挂载目录数据
#docker stop nexus
#cd /opt/nexus
#rm -rf ./*
#/bin/cp -a -r /tmp/nexus3/* ./ #/tmp/nexus3 目录为旧nexus服务器上数据目录 /opt/sonatype/sonatype-work/nexus3打包的数据
4,重启nexus docker镜像
5,浏览器打开 http://IP:9981
成功