首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何同步2个docker容器的overlay2文件系统?

如何同步2个docker容器的overlay2文件系统?
EN

Stack Overflow用户
提问于 2017-12-12 06:09:45
回答 2查看 681关注 0票数 0

我碰巧以一种可疑的方式使用docker来达到特定的目的:

我有一个容器,里面有一些开发工具及其配置。这些工具通常可以在配置了dotconf文件的操作系统中找到,这些文件通常位于主目录(如tmux、vim、git、编程语言等)中。这通常是通过使用工具和点文件配置操作系统来处理的。

但随着多年来设置变得越来越复杂,正确设置一个新的操作系统变得非常困难。另一方面,在机器周围移动容器非常简单。因此,对于这种情况,我碰巧以一种与"docker way“相反的方式使用docker。但这对我来说真的很舒服。

也就是说,我还希望将容器的文件系统与另一个容器同步(在我的理解中,这肯定不是"docker方式“,但目前还没有)。我想在不同的机器上运行同一镜像的两个实例。然后我想要同步他们的读写层,这是在图像的顶部。因此,当在其中一个上创建、删除或修改文件时,会在另一个上复制该文件。

我正在考虑使用rsync或unison来实现这一点。但我不知道overlay2驱动程序是如何工作的。/var/lib/docker/overlay2/<container-id>中的目录是实际的容器文件系统层吗?还是应该挂载它?我看到一些人使用设备映射器驱动程序在主机上安装他们的容器文件系统非常容易。这对overlay2有意义吗?

EN

回答 2

Stack Overflow用户

发布于 2017-12-14 07:04:43

我认为你最好的选择是使用绑定挂载。这会稍微改变你的初始设计--但它可能是最干净的,也是最容易实现的。

首先要做的是--你需要确保你想要同步的文件都在一个特定的文件夹中;因此,你只需要在你的容器中设置/app/my_files并设置你的应用程序从那里读/写,而不是同步整个底层的文件系统。

现在-创建目录并设置机器之间的rsync;假设它位于/rsync

最后-运行您的容器并使用绑定挂载;如果您只是启动一个容器,它将如下所示:docker run -d -v /rsync:/app/my_files my_image

票数 0
EN

Stack Overflow用户

发布于 2017-12-15 19:08:22

在阅读了这个页面:https://docs.docker.com/engine/userguide/storagedriver/overlayfs-driver/并尝试创建和删除图像/容器后,我发现了一些事情。

在创建映像时,文件夹/var/lib/docker/overlay2中填充了一个新文件夹,其名称似乎是一个散列(让我们称其为123),而它本身则填充了映像内容/文件系统。

然后,当从相同的镜像创建容器时,在/var/lib/docker/overlay2中又创建了两个文件夹,也是用另一个哈希命名的,其中一个文件夹的末尾是-init。我们称它们为456456-init。它们似乎包含了容器层。

在查看docker inspect <container-name>的输出时,docker部分包含有关GraphDriver如何使用overlay2的一些信息。下面的目录包含初始化容器目录+图像目录,如下所示:/var/lib/docker/overlay2/456-init/diff:/var/lib/docker/overlay2/123/diff。我不完全理解它是如何工作的,但我知道我对下面的目录不感兴趣,因为它应该是只读模式下的图像目录。这是我在所有主机上已经有的东西,因此不需要同步。

然后,在我的理解中,overlay2中的上层目录是容器在图像层之上使用的读写层。在GraphDriver中,我们发现它是/var/lib/docker/overlay2/456/diff。这是获取容器内所做更改的目录。我找不到文档,所以我尝试了一下,发现这个上目录在容器的生命周期中从来没有改变过。我停止并启动它,上面的dir保持不变。然后,当删除容器时,此文件夹将被删除。当再次创建容器时,会创建一个具有不同名称的新文件夹。

所以看起来我需要同步的是这个上层目录,它可以用docker inspect找到。我将对此进行更多的实验。

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

https://stackoverflow.com/questions/47762279

复制
相关文章

相似问题

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