zoukankan      html  css  js  c++  java
  • 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 )。

  • 相关阅读:
    Laravel框架中的event事件操作
    PHP魔术方法实例
    PHP 面向对象
    ThinkPHP中where()使用方法详解
    PHP常见错误提示含义解释
    php面向对象编程self和static的区别
    php文件路径获取文件名
    php三种无限分类
    php高精度计算问题
    转:JavaScript定时机制、以及浏览器渲染机制 浅谈
  • 原文地址:https://www.cnblogs.com/116970u/p/10869928.html
Copyright © 2011-2022 走看看