• Docker容器迁移新服务器


    容器保存为镜像

    使用docker commit 命令。将运行的容器提交为镜像
    其中
    -a指定作者信息
    -m 添加注释信息

    docker commit -a "wuzw" -m "QP" ff90ca6713a3  nextcloud:v1
    docker commit -a "wuzw" -m "QP" f7bc19b43fe5     mysql:nextcloud
    docker commit -a "wuzw" -m "QP"  785209b3cd31 elasticsearch:nextcloud
    docker commit -a "wuzw" -m "QP"  6473e4ef0e22 onlyoffice:nextcloud
    
    • 1
    • 2
    • 3
    • 4

    容器打包

    使用docker save 命令。将上一步生成好的镜像导出为tar包,用于导入新的环境运行。

    docker save nextcloud:Teld > nextcloud_save.tar
    docker save mysql:nextcloud > mysql_save.tar
    docker save elasticsearch:nextcloud > elasticsearch_save.tar
    docker save onlyoffice:nextcloud > onlyoffice_save.tar
    
    • 1
    • 2
    • 3
    • 4

    备份容器数据

    通过docker inspect 命令。查看容器运行时的参数
    包括端口、目录映射、参数调解等
    将容器数据打包,然后放入新服务器同样的位置

    新环境安装docker环境

    docker版本安装相同版本的,原有docker环境版本可以通过docker version 命令来查看。

    # 添加yum源
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
     
    # 更新数据源
    yum update
     
    # 列出数据源
    yum list docker-ce --showduplicates|sort -r
     
    yum list docker-ce-cli --showduplicates|sort -r
     
     
    yum install -y docker-ce-20.10.2 docker-ce-cli-20.10.2 containerd.io
     
    systemctl start docker && systemctl enable docker
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    新环境加载镜像

    将导出的tar包放入新的服务器进行加载。

    
    docker load -i nextcloud_save.tar
    docker load -i mysql_save.tar
    docker load -i elasticsearch_save.tar
    docker load -i onlyoffice_save.tar
    
    • 1
    • 2
    • 3
    • 4
    • 5

    还原应用数据

    将打包的数据还原到相同的目录。
    可以用cp -a 的参数保持原有的属性,防止出现权限问题。

    启动容器

    docker run -d --restart=always -p 888:80 -v /mnt/nextcloud:/var/www/html --link mysql:nextcloud --name nextcloud  nextcloud:v1
     
     
    docker run -i -t -d -p 1888:80 --restart=always --name onlyoffice  --link nextcloud:v1 -v /root/onlyoffice/log:/var/log/onlyoffice   -v /root/onlyoffice/data:/var/www/onlyoffice/Da
    ta   -v /root/onlyoffice/lib:/var/lib/onlyoffice  -v /root/onlyoffice/db:/var/lib/postgresql  onlyoffice:nextcloud
     
     
    docker run -d  -p 3333:3306 -v /usr/mydata/mysql/conf:/etc/mysql/conf.d -v /usr/mydata/mysql/log:/var/log/mysql -v /usr/mydata/mysql/data:/var/lib/mysql --name my
    sql mysql:nextcloud
     
     
    docker run -d -p 9999:9200 -p 8888:9300 -e ES_JAVA_POTS="-Xms128m -Xmx128m" -e "discovery.type=single-node" --name elastic_search elasticsearch:nextcloud
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    修改容器配置

    如果容器里边有配置过IP地址等信息,需要修改这些信息进行重启。

  • 相关阅读:
    TinyRenderer学习笔记--Lesson 5
    C++学习6-类和对象
    什么牌子的蓝牙耳机耐用?类似airpods pro的降噪耳机推荐
    JSP SSH毕业论文管理统myeclipse开发mysql数据库MVC模式java编程网页设计
    SpringCloud 配置中心(Nacos)的简单使用
    ubuntu 18.04下安装Anaconda、Cuda、Cudnn、gpu-Pytorch
    Ai图像绘制模型训练以及应用
    接口压力测试 jmeter--进阶篇(三)
    vue修饰符 lazy number trim
    【小程序专栏】第一个uniapp项目编译到微信开发者工具以及android真机运行
  • 原文地址:https://blog.csdn.net/qq_32014795/article/details/126040702