LXC & OverlayFS
Цель - настроить / установить веб-приложение на хосте и убедиться, что оно доступно через контейнер lxc.
Почему - чтобы изолировать хост, предоставьте доступ к веб-приложению и ssh-доступ нашим клиентам.
Вопрос - Должен ли я настроить LXC с overlayFS и смонтировать файлы конфигурации webapp или просто внедрить реализацию overlayFS с переадресацией портов?
2 ответа
Одним из вариантов является полная настройка веб-приложения в контейнере LXD и предоставление им доступа к этому контейнеру LXD через SSH. Таким образом, ваш хост не будет выставлен вообще, и то, что происходит в этом контейнере веб-приложения, остается в контейнере веб-приложения. Если у вас есть несколько клиентов на одном сервере, вы можете поместить каждого клиента в свой собственный контейнер. Затем настройте обратный прокси-сервер (такой как 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) каталог веб-приложения с хоста, чтобы он появился в контейнере. Внутри контейнера они смогут видеть подкаталог с файлами веб-приложений. Тем не менее, они могут легко изменить файл.php и выставить ваш хост страшными способами. Поэтому перейдите на первый вариант.
Также см. https://discuss.linuxcontainers.org/t/comparing-lxd-vs-lxc/24 для различия между LXC и LXD.
Я установил "Мастер" контейнер LXC и снимок-копию Мастера. Снимок-копия использует OverlayFS; rootfs оригинала (Master) и rootfs снимка-копии хранятся в разных местах.
Изменения хранятся в delta0, в снимке-копии. Это позволяет хранить любые изменения отдельно. Таким образом, клиенты, использующие веб-приложение или службу ssh, смогут вносить изменения в оверлей, а не в подложку!
Веб-приложение настроено на Master и запускается в виде снимка-копии. Работает отлично!