docker 纯数据容器的持久性如何
How persistent are docker data-only containers
我对纯数据 docker 容器有点困惑。我读到将目录直接挂载到源是一种不好的做法-os: https://groups.google.com/forum/#!msg/docker-user/EUndR1W5EBo/4hmJau8WyjAJ
我知道如何制作纯数据容器:http://container42.com/2014/11/18/data-only-container-madness/
我看到了一些与我类似的问题:How to deal with persistent storage (e.g. databases) in docker
但是如果我有一个 lamp-server 设置..并且我有所有很好的数据容器设置,而不是将它们 'directly' 链接到我的 source-os 和偶尔做个备份..
有人来了,并重新启动了我的服务器。我如何再次设置我的 docker(仅数据)容器,这样我就不会 os 收集任何数据?
Docker 容器将保留在磁盘上,直到使用 docker rm
显式删除它们。如果您的服务器重新启动,您可能需要重新启动您的服务容器,但您的数据容器将继续存在,并且它们的卷将可供其他容器使用。
docker rm
本身不会删除实际数据(存在于 /var/lib/docker/vfs/dir
)
只有docker rm -v
也会清除数据。
唯一的问题是,在 docker rm
之后,新的 docker 运行 会在 /var/lib/docker/vfs/dir
中重新创建一个空卷。
理论上,您可以使用符号链接将新卷文件夹重定向到旧文件夹,但这假设您记下了哪些卷与哪个数据容器相关联……在 docker rm
.
之前
实际上,即使是 shykes 说在您提供的 link 中它被认为是 "hack",请注意日期。自从关于卷的 post 以来,已经过去了 Docker 年,在主机上装载卷不再被认为是不好的做法。事实上,here is a link 对同样的 shykes 说他有 "definitely used them at large scale in production for several years with no issues"。将主机 OS 目录挂载为 docker 卷,不用担心。这意味着您的数据在 docker restarts/deployments/whatever 中持续存在。它就在主机的磁盘上,当您的容器消失时它不会消失。
自从我使用 Docker,它运行得很好。此外,shykes 似乎不再认为这是不好的做法。
值得注意的是,您使用 "data-only containers" 创建的卷本质上仍然是主机 OS 上的目录,只是位于不同的位置 (/var/lib/docker/...
)。一个好处是您可以使用友好的标识符来标记您的卷,因此您不必对目录路径进行硬编码。
缺点是备份特定数据卷等管理工作现在有点麻烦,因为您必须手动检查元数据以找到目录位置。此外,如果您不小心擦除 docker 安装或所有 docker 容器,您将丢失数据量。
我对纯数据 docker 容器有点困惑。我读到将目录直接挂载到源是一种不好的做法-os: https://groups.google.com/forum/#!msg/docker-user/EUndR1W5EBo/4hmJau8WyjAJ
我知道如何制作纯数据容器:http://container42.com/2014/11/18/data-only-container-madness/
我看到了一些与我类似的问题:How to deal with persistent storage (e.g. databases) in docker
但是如果我有一个 lamp-server 设置..并且我有所有很好的数据容器设置,而不是将它们 'directly' 链接到我的 source-os 和偶尔做个备份..
有人来了,并重新启动了我的服务器。我如何再次设置我的 docker(仅数据)容器,这样我就不会 os 收集任何数据?
Docker 容器将保留在磁盘上,直到使用 docker rm
显式删除它们。如果您的服务器重新启动,您可能需要重新启动您的服务容器,但您的数据容器将继续存在,并且它们的卷将可供其他容器使用。
docker rm
本身不会删除实际数据(存在于 /var/lib/docker/vfs/dir
)
只有docker rm -v
也会清除数据。
唯一的问题是,在 docker rm
之后,新的 docker 运行 会在 /var/lib/docker/vfs/dir
中重新创建一个空卷。
理论上,您可以使用符号链接将新卷文件夹重定向到旧文件夹,但这假设您记下了哪些卷与哪个数据容器相关联……在 docker rm
.
实际上,即使是 shykes 说在您提供的 link 中它被认为是 "hack",请注意日期。自从关于卷的 post 以来,已经过去了 Docker 年,在主机上装载卷不再被认为是不好的做法。事实上,here is a link 对同样的 shykes 说他有 "definitely used them at large scale in production for several years with no issues"。将主机 OS 目录挂载为 docker 卷,不用担心。这意味着您的数据在 docker restarts/deployments/whatever 中持续存在。它就在主机的磁盘上,当您的容器消失时它不会消失。
自从我使用 Docker,它运行得很好。此外,shykes 似乎不再认为这是不好的做法。
值得注意的是,您使用 "data-only containers" 创建的卷本质上仍然是主机 OS 上的目录,只是位于不同的位置 (/var/lib/docker/...
)。一个好处是您可以使用友好的标识符来标记您的卷,因此您不必对目录路径进行硬编码。
缺点是备份特定数据卷等管理工作现在有点麻烦,因为您必须手动检查元数据以找到目录位置。此外,如果您不小心擦除 docker 安装或所有 docker 容器,您将丢失数据量。