我现在正在读“码头客”的文章。据我所知,基于图像的容器只保存更改。如果我要在生产设置中使用这一点,那么在运行“内部”容器的应用程序将更改写入磁盘时,它是否会将其保存下来,还是必须手动执行?
我担心的是-如果主人突然关机怎么办?所有的变化都会消失吗?
发布于 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一样多的测试(不过,对我来说还行)。
https://stackoverflow.com/questions/24298339
复制相似问题