Docker容器 – 用户数据

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

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

这些方法都没有问题 – 它们很容易实现,工作得很好。 但是,有一些事情我不清楚:

  • 当数据容器实际上在数据实际正在写入的地方。 例如,写入该容器内的/ var / lib / mysql文件夹的文件是否在主机文件系统的某处结束?
  • 将主机系统子文件夹作为卷映射到Docker容器有哪些风险,同时要记住容器的用户现在可以直接写入主机的文件系统
  • 最后,是否有一个简单的方法来限制该映射卷的大小?

我非常感谢任何帮助。

当数据容器实际上在数据实际正在写入的地方。 例如,写入该容器内的/ var / lib / mysql文件夹的文件是否在主机文件系统的某处结束?

未从主机挂载的卷存储在这里:/ var / lib / docker / volumes /

将主机系统子文件夹作为卷映射到Docker容器有哪些风险,同时要记住容器的用户现在可以直接写入主机的文件系统

只要你的容器没有作为特权运行,即使用–privileged = true标志,你的容器就不能访问设备,并被locking在主机fs的几个敏感部分。 其次,默认情况下,docker中的所有进程以root身份运行,这给了他们在容器内的许多特权,因为docker并不能保证安全的沙盒,但是可能有人在你的容器中攻击一个进程。 因此,您应该在docker文件或-u标志中使用docker USER命令来以替代用户身份运行进程。

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

你必须在docker以外做,也许通过创build一个单独的逻辑驱动器,并根据你的需要来确定它的大小。