首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在生产中使用码头集装箱的行为

在生产中使用码头集装箱的行为
EN

Stack Overflow用户
提问于 2014-06-19 03:33:27
回答 1查看 408关注 0票数 3

我现在正在读“码头客”的文章。据我所知,基于图像的容器只保存更改。如果我要在生产设置中使用这一点,那么在运行“内部”容器的应用程序将更改写入磁盘时,它是否会将其保存下来,还是必须手动执行?

我担心的是-如果主人突然关机怎么办?所有的变化都会消失吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-19 06:56:25

理论是,在大多数情况下,Docker容器与经典VM或物理主机之间没有真正的区别。

如果主机突然死亡,您可以使用容器和物理主机松散最近的数据:

  • 您的应用程序可能还没有决定真正发送写操作来保存磁盘上的数据,
  • 操作系统可能已经决定在将数据发送到存储设备之前等待一段时间。
  • 文件系统可能还没有完成写入。
  • 数据可能并没有真正地被刷新到物理存储设备。

现在默认情况下,Docker使用在文件级别工作的AUFS (可堆栈文件系统)。

如果您正在写入Docker映像中存在的文件,AUFS将首先将此基本文件复制到上层可写层(容器),然后再编写更改。这将根据原始文件的大小导致延迟。这里有更多有趣的技术信息

我猜想,如果在复制原始文件时发生断电,并且在编写更改之前发生了停电,那么这将是与任何“经典”主机相比,Docker容器丢失更多数据的原因之一。

您可以将关键数据移动到码头工人“数量”,它将是主机上的常规文件系统,绑定到容器中。这是处理您希望跨容器部署保存的重要数据的推荐方法。

为了缓解AUFS潜在的问题,您可以告诉Docker使用LVM瘦配置块设备,而不是AUFS (擦除/var/lib/docker并使用docker -d -s devicemapper启动守护进程)。但是,我不知道这个存储后端是否收到了与默认的AUFS一样多的测试(不过,对我来说还行)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24298339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档