• Docker备份与迁移


    容器保存为镜像

      通过以下命令将容器保存为镜像:

    docker commit [-m="提交的描述信息"] [-a="创建者"] 容器名称|容器ID 生成的镜像名[:标签名]

      1.无目录挂载-容器保存为镜像

    docker inspect --format='{{.Mounts}}' 容器名

      

      mycentos2 容器无数据目录挂载,保存为镜像方式如下:

    docker commit mycentos2 mycentos_new:1.1

      mycentos2 是容器名称
      mycentos_new 是新的镜像名称
      此镜像的内容就是你当前容器的内容,接下来你可以用此镜像再次运行新的容器

      

      创建并登录容器

    docker run -it --name=mxg_mycentos_new mycentos_new:1.1 /bin/bash

      在第5.6章节向 mycentos2 容器中添加了mengxuegu文件,所以新的容器中也有此文件,如下:

      

      2.有目录挂载情况(难点)

      问题: 如果Docker对容器挂载了数据目录, 在将容器保存为镜像时,数据不会被保存到镜像中。
      原因:因为宿主机与容器做了路径映射,再commit一个新的镜像时,该路径下的所有数据都会被抛弃,不会被保存到新镜像中。可通过 docker inspect --  format='{{.Mounts}}' 镜像名 查看是否有目录挂载.
      解决:

        目录挂载方法。先把在宿主机的数据备份在某个目录下,在 docker run 的时候使用-v参数将宿主机上的目录映射到容器里的目标路径中(tomcat是     /usr/local/tomcat/webapps ,mysql是
        var/lib/mysql )
        拷贝方法。先把在宿主机的数据备份在某个目录下,通过拷贝的方法 docker cp 将备份的数据复制进容器里的目标路径中(tomcat是     /usr/local/tomcat/webapps ,mysql是 var/lib/mysql )。

  • 相关阅读:
    IE设置代理后登录QQ再关闭代理仍然可以使用QQ
    ubuntu14.04下Qt开发环境搭建遇到的问题
    CButtonST使用技巧: CButtonST简介
    springboot webapi 支持跨域 CORS
    服务注册和发现 Eureka
    开发框架 springBoot
    springBoot springCloud
    springBoot 微服务
    springBoot AOP环绕增强、自定义注解、log4j2、MDC
    springBoot 热部署
  • 原文地址:https://www.cnblogs.com/116970u/p/10869928.html
Copyright © 2020-2023  润新知