• Docker中容器的备份、恢复和迁移


    1. 备份容器 

    首先,为了备份Docker中的容器,我们会想看看我们想要备份的容器列表。要达成该目的,我们需要在我们运行着Docker引擎,并已创建了容器的Linux机器中运行 docker ps 命令。

     sudo docker ps --因为我本地的虚拟机没有配置docker的全局变量,所以用sudo 执行
    


    该命令会生成一个作为Docker镜像的容器快照,我们可以通过运行 docker images 命令来查看Docker镜像,如下。

    sudo docker commit -p 6fd1775e7dd0 postgres-backup1    -p 容器id  备份镜像名称
    

    正如我们所看见的,上面做的快照已经作为Docker镜像保存了。现在,为了备份该快照,我们有两个选择,一个是我们可以登录进Docker注册中心,并推送该镜像;另一个是我们可以将Docker镜像打包成tar包备份,以供今后使用。 

    如果我们想要在Docker注册中心上传或备份镜像,我们只需要运行 docker login 命令来登录进Docker注册中心,然后推送所需的镜像即可。可以参考链接:https://www.jb51.net/os/other/378697.html

    本地保存:

    sudo docker save -o ~/postgres.tar postgres-backup1 --将postgres-backup1镜像保存为postgres.tar
    

    2. 恢复容器

    恢复容器,迁移在下一个段落。

    sudo docker load -i ~/postgres.tar
    

      

     用 docker images 查看docker镜像,运行还原好的docker容器 

    sudo docker run -d -p 5432:5432 postgres-backup
    

     

    3、Linux迁移文件

    迁移容器同时涉及到了上面两个操作,备份和恢复。我们可以将任何一个Docker容器从一台机器迁移到另一台机器。在迁移过程中,首先我们将把容器备份为Docker镜像快照。然后,该Docker镜像或者是被推送到了Docker注册中心,或者被作为tar包文件保存到了本地。如果我们将镜像推送到了Docker注册中心,我们简单地从任何我们想要的机器上使用 docker run 命令来恢复并运行该容器。但是,如果我们将镜像打包成tar包备份到了本地,我们只需要拷贝或移动该镜像到我们想要的机器上,加载该镜像并运行需要的容器即可。。

    3.1、安装vsftp 用于上传和下载

    sudo apt-get install vsftpd
    

    其它的配置参考:https://www.cnblogs.com/jikexianfeng/p/5862167.html 

    这里主要是讲遇到的一个问题,纠结了半天。

    用FTP上传工具链接Linux 虚拟机时候,发现上传文件可以上传下去,但是刚刚备份的postgres.tar文件下载不下来,一直报:550 Failed to open file.最后发现是文件权限的问题。

    因为文件的权限是root,所以无法下载。解决方法更改文件的权限,这样就可以下载了。改变文件权限详细了解见:https://www.cnblogs.com/DawaTech/p/7249734.html

    sudo change test postgres.tar--修改postgres.tar的拥有者为test用户(我本地虚拟机的用户叫test,根据实际更改用户名)

    3.2、 Windows访问ubuntu共享文件夹

    因为我本地虚拟机是ubuntu,其它Linux命令操作,需要根据实际去了解一下。

    1、对要共享的文件夹右击->Local Network Share(本地文件夹共享)

    2、选择Share this folder(共享此文件夹),提示安装共享服务,安装共享服务

     安装完成后,点击共享。这样就能完成共享了。

     在windows下文件夹填写:\192.168.12.131share,这样就能完成访问。如果提示不能访问,将share上面的共享属性改成“允许匿名登录”,这样就可以了,当然这个安全性有点低。

     共享路径设置可以参照链接:https://www.cnblogs.com/heguoyuan/p/9902446.html

  • 相关阅读:
    例行报告
    探路者-Beta发布中间产物
    例行报告
    例行报告
    互评Alpha版本—SkyHunter
    Oracle 存储过程5:PL/SQL异常处理
    Oracle 存储过程2: PL/SQL数据类型
    rest-assured:外部数据驱动之通过CsvFile数据源来使用外部数据源(org.junit.platform.commons.PreconditionViolationException: Classpath resource [repo.csv] does not exist)
    rest-assured:JUnit5中接口测试参数化的支持之利用EnumSource检查用户消息是否包含特定字段(JSON path $ doesn't match.)
    Rest-Assured:发送PATCH请求:更新Hello-imook(java.lang.IllegalArgumentException: Invalid number of path parameters. Expected 2, was 0. Undefined path parameters are: owner, repo.)
  • 原文地址:https://www.cnblogs.com/whitebai/p/12051458.html
Copyright © 2020-2023  润新知