Docker容器 - 用户数据

时间:2015-01-06 10:03:56

标签: docker

如果您迟早使用Docker(在一个容器中或作为一系列链接的容器)设置应用程序堆栈,则需要序列化用户数据 - 例如数据库。从我到目前为止看到的,这可以通过两种方式完成

  • 使用-v开关将主机上的卷映射到Docker容器。
  • 创建一个存储的专用数据容器。在需要时恢复

这两种方法都没有问题 - 它们易于实施并且工作得很好。但是,有一些事情我不清楚:

  • 当数据容器实际处于活动状态时,实际写入的数据。例如,写入该容器内的/ var / lib / mysql文件夹的文件最终会出现在主机文件系统的某个位置吗?
  • 将主机系统子文件夹作为卷映射到Docker容器有什么风险,请记住,现在容器的用户能够直接写入主机的文件系统
  • 最后,是否有一种简单的方法可以限制该映射卷的大小?

我非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

  

当数据容器实际处于活动状态时,实际写入的数据。例如,写入该容器内的/ var / lib / mysql文件夹的文件最终会出现在主机文件系统的某个位置吗?

未从主机挂载的卷存储在此处: 的/ var / lib中/搬运工/体积/

  

将主机系统子文件夹作为卷映射到Docker容器的风险是什么,请记住,现在容器的用户能够直接写入主机的文件系统

只要您的容器未以privileged运行,即使用--privileged = true标志,您的容器就无法访问设备,并且无法访问主机fs的几个敏感部分。其次默认情况下,docker中的所有进程都以root身份运行,这给了它们容器内的很多权限,并且由于docker不能保证安全的沙箱,但是可能会有人破解容器内的进程。因此,您应该使用docker文件中的docker USER命令或-u标志以备用用户身份运行您的进程。

  

最后,是否有一种简单的方法来限制该映射卷的大小?

您必须在docker之外执行此操作,可能是创建一个单独的逻辑驱动器并根据您的需要调整它。