• Docker环境应用迁移


    最近因为云主机资源到期,需要吧gitlab和nexus的私库进行迁移。这里做下记录。

    gitlab和nexus都是基于docker做的部署,由于时间久远,基本也忘了怎么整的了,需要从零摸索。

    首先,我们需要搞清当时docker部署方式,主要是有没有对外关联存储文件什么的。推荐方法,使用runlike工具。基于python3开发的一个小组件,十分好用。虽然docker inspect也能查看docker容器状态,但是不够直观。

    这里需要注意,runlike需要python3.7以上版本支持,需要先更新python版本,可能会牵扯一堆问题,请自行解决。

    安装方法:pip install runlike

    这里我也是在服务器上七搞八搞(反正要迁移了,只要数据不搞丢就完了),才装了python3.10,升级了openSSL到1.1.1b,然后才装上了runlike。

    效果:

     

     是不是比inspect好用多了,基本可以直接启动容器了。

    通过上面截图可以看出,gitlab是将整个git的数据文件全部映射到宿主机了

     这就比较好搞,上新服务器上重启一个服务,就用上面runlike的脚本启动就行,然后把原服务器mnt/gitlab的目录tar打包,scp搞到新服务器上,然后tar解压缩替换源文件就行了。对了,替换前先stop服务,然后替换完再重启。基本就搞定。

    当然,上述方法有个弊端,如果你修改了gitlab的配置,比方说gitlab.rb,或者其他内部配置,那么新容器可能无法同步过来。当然,你知道改了哪些可以重新配。我这里记不得了。所以我利用了我们主机的harbor镜像服务。先通过docker commit将当前运行的gitlab容器重新打包镜像。然后docker tag打标签,docker login到harbor上,docker pull推送到harbor。然后在新服务器上直接用上传harbor的镜像docker run一下,就确保镜像内配置通过过来了。然后按照上面步骤,把mnt下gitlab目录替换,启动就可以运行了。原git的用户,库,分组配置,全部都过来了。不过发现又出现了时间问题。按照我之前文章的方法:GitLab提交时间显示错误解决办法_b哈利路亚d的博客-CSDN博客_gitlab 时间

    删除缓存(因为毕竟是县创建的容器,然后才复制数据过来,可能导致有初期缓存,引发了这个问题),重新配置并重启gitlab服务就恢复了。nexus就比较麻烦。

     关键的数据目录没有映射出来。

    没办法,先到新服务器上面创建镜像,注意,这次改了下,映射了目录;

     参考脚本如下:

    1. docker commit -a "dict" -m "wwb" 4e2d40986deb nexus:v1
    2. docker tag nexus:v1 shandong.harbor.cn:4443/dict/nexus:v1
    3. docker login https://shandong.harbor.cn:4443
    4. docker push shandong.harbor.cn:4443/dict/nexus:v1
    5. docker run -d --privileged=true --name nexus3 -p 9091:8081 --restart always --volume=/usr/local/work/maven:/var/nexus-data -v /home/nexus-data:/nexus-data shandong.harbor.cn:4443/dict/nexus:v1

    -v /home/nexus-data:/nexus-data 这里把nexus-data映射到了主机/home/nexus-data目录下,为了方便以后迁移。

    然后通过docker cp 把上面说的核心目录复制到主机,然后tar,scp,tar到/home/nexus-data目录下。然后重启服务。

    结果出问题了,容器不断重启。查看docker logs发现,是权限问题。经查找

    需要设置

    chown -R 200 /home/nexus-data

    就可以了

    其实中间过程都还挺顺利的,就是runlike需要python3.7有点难搞。阿里云最高到3.6.5,需要编译安装,然后由于版本比较新,关联依赖都需要更新,例如openssl,花了点时间。不过效果还是很好的。

  • 相关阅读:
    OpenCV-Python快速入门(七):边缘检测
    内存CACHE同步引起OSD时间戳显示异常
    西安生物素-四聚乙二醇-酰胺-4苯酚 浅黄色半固态
    echarts设置多条折线不是你想的那样简单
    微服务实战系列之Sentinel
    【PHP函数封装】分分钟帮你实现数据脱敏处理, 支持手机号码、邮箱、身份证号 中文字符串!
    Kafka常用参数
    中秋快乐! Happy Mid-autumn Festival!
    Pytorch之LeNet-5图像分类
    推荐算法学习笔记2.1:基于深度学习的推荐算法-基于共线矩阵的深度推荐算法-AutoRec模型
  • 原文地址:https://blog.csdn.net/lanwilliam/article/details/127628838