LXC 和 OverlayFS

LXC 和 OverlayFS

目标- 在主机上配置/安装 web 应用程序并确保它可以通过 lxc 容器访问。

为什么- 隔离主机但仍提供对 Web 应用程序的访问以及对我们客户端的 ssh 访问。

问题- 我是否应该使用 overlayFS 配置 LXC 并挂载 webapp 配置文件,或者简单地实现端口转发而跳过 overlayFS 实现?

答案1

一种选择是将 Web 应用完全设置在 LXD 容器中,并允许他们通过 SSH 访问此 LXD 容器。这样,您的主机将完全不会暴露,并且此 Web 应用容器中发生的事情将保留在 Web 应用容器中。如果您在同一台服务器上有多个客户,您可以将每个客户放在他们自己的容器中。然后,设置反向代理(例如 HAProxy)以将每个传入连接定向到相应的容器。例如,请参阅https://www.digitalocean.com/community/tutorials/how-to-host-multiple-web-sites-with-nginx-and-haproxy-using-lxd-on-ubuntu-16-04 您还可以将 HAProxy 设置为 TLS 终止代理,这意味着所有网站https和证书都将在 HAProxy 中的单一位置进行管理。

如果你真的想按照问题中描述的那样做,可以按照以下方法操作:1. 不要弄乱 overlayFS,因为它在 LXC/LXD 中无法正常工作。2. 你可以绑定挂载(https://blog.ubuntu.com/2016/12/08/mounting-your-home-directory-in-lxd) 从主机中删除 webapp 目录,使其出现在容器中。在容器内,他们将能够看到包含 webapp 文件的子目录。不过,他们可以轻松修改 .php 文件并以可怕的方式暴露您的主机。因此,选择第一个选项。

另请参阅https://discuss.linuxcontainers.org/t/comparing-lxd-vs-lxc/24了解 LXC 和 LXD 之间的区别。

答案2

我已经设置了一个“主” LXC 容器和主容器的快照副本。快照副本使用 OverlayFS;原始(主容器)的 rootfs 和快照副本的 rootfs 存储在不同的位置。

更改存储在快照副本内的 delta0 中。这样可以将任何更改单独存储。因此,使用 webapp 或 ssh 服务的客户将能够在覆盖层上进行更改,而不是在底层上进行更改!

Web 应用程序已在 Master 上设置并在快照副本中运行。运行完美!

相关内容