Docker 卷:备份

2024-01-01

我创建了一个卷容器。以及一个从卷容器安装到 en 的容器。

容积容器:

docker run -d --name nexus-data nexus:1.0 echo "data-only container for Nexus"

我的 Nexus 容器:

docker run -d -p 8443:8443 -p 8081:8081  --name nexus --restart=always --volumes-from nexus-data nexus:1.0

所以这工作正常。我能够删除并重新创建我的 Nexus 容器而不会丢失数据。卷容器(未处于运行状态)正在保存数据。

但这种方法的瓶颈是卷容器。当我不小心删除这个容器时,所有数据都消失了。 这种情况发生得非常快,因为一些删除已停止容器的有用命令也会删除卷容器。

所以我想为我的卷容器创建备份。 我尝试过以下方法:

$ docker cp nexus:/this/folder/ /home/ubuntu/backup-folder

And

$ docker import nexus > /home/ubuntu/backup.tar

所以我的主目录中有一个文件夹和一个 .tar。 现在我想知道导入这些备份之一的正确方法是什么?

我读到了关于docker export命令创建“新图像”,但我不喜欢这种方法,因为我的备份文件夹非常大。


干脆不要使用数据卷容器:从 docker 1.9 开始,你可以使用docker volume create https://docs.docker.com/engine/reference/commandline/volume_create/反而。 Docker 现在有音量命令 https://docs.docker.com/engine/userguide/containers/dockervolumes/#mount-a-shared-storage-volume-as-a-data-volume.

以下示例还创建了my-named-volume音量,这次使用docker volume create命令。

$ docker volume create --name my-named-volume -o size=20GB
$ docker run -d -P \
  -v my-named-volume:/opt/webapp \
  --name web training/webapp python app.py

这些卷已命名,由 docker volume ls 列出,您可以备份/var/lib/docker/volumes.

使用数据卷容器,您需要记住该容器中数据的路径(docker inspect -f '{{ (index .Mounts 0).Source }}),将其写入文件,并在创建新的数据卷容器时使用该路径。
我曾经这样做过updateDataContainerPath.sh https://github.com/VonC/b2d/blob/912b988add3e532c3d073767fc66c2f5759df152/updateDataContainerPath. See "重新附加孤立的 docker 卷 https://stackoverflow.com/a/37203287/6309".

自 docker 1.9 和命名卷以来,我不再需要那种复杂的机制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 卷:备份 的相关文章

随机推荐

  • 使用不同中间件的 Compojure 路由

    我目前正在使用 Compojure 以及 Ring 和相关中间件 在 Clojure 中编写 API 我正在尝试根据路线应用不同的身份验证代码 考虑以下代码 defroutes public routes GET public endpoi
  • 地球上所有 MimeType 的列表,映射到文件扩展名? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有列出现有所有 mimeType 的资源 我发现了一些地方的 mimeTypes 少于 1000 个
  • 使用 React hooks 防止 React 重新渲染 D3 图表

    我一直分别使用 React 和 D3 现在有一个项目 我需要对应用程序的绘图功能进行低级别控制 基本上 当用户放大绘图时 我需要能够从数据库中获取更高分辨率的数据 反之亦然 我找到了一些结合使用 D3 和 React 的方法 我想尝试让我的
  • ByRef 参数类型不匹配”错误 VB6

    我是 VB6 和 spread 的新手 我的 VB 项目正在使用 spread 在进行 spread 初始化的表单中 VB 6 会抛出一个编译错误 By Ref Argument Type Mismatch 错误 是否是因为 spread问
  • 在python中查找对某个对象的所有引用

    在 python 中查找对象的所有引用的好方法是什么 我问的原因是看起来我们有 内存泄漏 我们正在从网络浏览器将图像文件上传到服务器 每次执行此操作时 服务器上的内存使用量都会与刚刚上传的文件的大小成比例地增加 该内存永远不会被 pytho
  • C# process.start,如何知道进程是否结束?

    在 C 中 我可以使用以下命令启动一个进程 进程 启动 程序 exe 如何判断程序是否仍在运行 或者是否已关闭 MSDN 系统 诊断 流程 http msdn microsoft com en us library system diagn
  • 在验证 w3c 的 facebook 元标记中没有属性“property”

    我们可以使用meta name fb admins 代替meta property fb admins 用于 w3c 验证 我正在回答这个问题 尽管这是一个老问题 因为我认为这对于将来想要获得这方面信息的人来说是有价值的 当埃文说它不会通过
  • Yii2 - 制作超链接以在语言之间切换

    Hello 在 Yii1 1 中 我可以在 siteController 中执行操作 然后使用 Yii app gt controller gt createUrl actionname array language gt new lang
  • Fedora OpenJDK 设置 JAVA_HOME

    我正在使用 Fedora 实际上是 Pidora 因为我试图在树莓派集群上设置 hadoop 我使用 ansible 在所有节点上安装了 oopenjdk 但是 当我尝试设置 JAVA HOME 环境变量时 我对以下文件夹感到非常困惑 us
  • C 函数名还是函数指针? [复制]

    这个问题在这里已经有答案了 我们来看看这段代码 include
  • 路径相关类型是类型投影吗?

    我现在正在深入阅读Scala 以下是这本书的摘录 所有路径相关类型都是类型投影 路径依赖型foo Bar被重写 作为foo type Bar由编译器 在 Scala 中 所有类型引用都可以编写为针对命名实体的项目 类型 scala Stri
  • React 功能组件:如何使用 componentDidMount() [重复]

    这个问题在这里已经有答案了 我有一个函数 从技术上讲 它是一个 React 函数组件 export default function Daw return lt gt div Hello world div gt 当然 我的普通函数不能有R
  • 如何将用纯 python 动态创建的按钮添加到用 Kivy 语言编写的 kivy 布局中?

    我的问题是 我需要基于可变数量的网格方块创建按钮网格 并将它们放置在网格布局上 并使用屏幕管理器将它们显示在屏幕上 我知道如何使用简单的 for 循环在纯 python 中执行此操作 但是我用 kivy 语言编写了程序的布局 并且我不知道如
  • 关于http劫持和keep-alive

    i use resp err http Get http example com 得到一个http Response 我想准确地写入http处理程序 但只有http ResponseWriter 所以我劫持了它 webConn webBuf
  • R ggplot直方图条形按降序排列

    我不知道如何使用 ggplot 使直方图的条形按降序显示 这是我的代码 其中包含每个人都可以使用的数据框 library ggplot2 library scales chol lt read table url http assets d
  • 从 ajax post 在 django 视图中创建多个对象

    我有以下模型 对象 C 被对象 B 包含 被对象 A 包含 我在模板中有一个动态表单 并使用 jQuery 函数 我可以向该表单动态添加多个字段 每组字段代表对象 B 或 C 当通过后期操作提交时 我想创建我的对象树 我的目标是在验证此模板
  • 如何使用 telegram bot api 在群聊中接收消息

    我的电报机器人在私人聊天中接收用户发送到我的机器人的消息 但不接收用户在群聊中发送的消息 任何用于获取群聊消息的选项 api Talk to botfather http telegram me botfather并禁用隐私模式
  • 如何在 eeePc 701 / Ubuntu Netbook Remix 1.6 (Lucid) 上构建 cabal-install

    不是编程问题 但我第一次看到这样的问题 UNR 1 6 基于Ubuntu 10 04 安装6 12 1版本的GHC 所以 为了构建 cabal install 0 8 2 我必须安装libghc6 parsec mtl network 和
  • 如何删除JTable中选定行(第一列有复选框)的文本?

    我有一个 Jtable 第一列中有一个复选框 我想在选中复选框时对行文本添加删除线 例如 当我们的任务完成时 与我们在 microsoft Outlook 中所做的相同 我尝试过使用 AttributeString 但无法做到这一点 有人可
  • Docker 卷:备份

    我创建了一个卷容器 以及一个从卷容器安装到 en 的容器 容积容器 docker run d name nexus data nexus 1 0 echo data only container for Nexus 我的 Nexus 容器