LXC - Просто контейнеры

Многие быстро разочаровались попробовав громко раскрученное контейнерное решение Docker. Дело в том, что логика создателей видимо опиралась на помещение в центр автоматизированно работающего экземпляра ОС с программным обеспечением, которое создается и настраивается с минимальным ручным участием, а инернтность логики просит контейнера - виртуальной машины в которую залогинился раз в неделю и подкрутил там и закапал тут. В результате неоднозначность принципов работы, параметров и конфигураций и относительная сырость проекта делает его использование порой затруднительным. Однако, такими простыми контейнерами могли бы стать используемые в том же докере линуксовые контейнеры, которые включаются теперь по умолчанию в ядро и дистрибутивы.

Ставится и запускается все невпример просто.

Ставим контейнерное ПО

#apt-get install lxc

Создаем контейнер

#lxc-create -n {имя_контейнера} -t {тип_контейнера}

Тим контейнера например - ubuntu. Контейнеры создаются в /var/lib/lxc/{имя_контейнера}, и вы можете легко и быстро обмениваться файлами с хостовой системой, делать резервные копии отдельных катлогов и вообще все что угодно. Они весьма легковесны.

Запускаем:

#lxc-start -n {имя_контейнера}

Логинимся в него:

#lxc-attach -n {имя_контейнера}

Выходим обычным exit'ом. Удобно это все держать менеджере консольных окон screen или byobu.

Контейнеры получают адреса в локальной подсети и чтобы сервисы запущенные в них были видны из вне через айпи адрес хостовой машины надо пробрасывать порты фаерволом:

#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 10.0.3.100:80

 

здесь мы заставили хостовый компьютер перебрасывать все тисипи запросы 80го порта на копмьютер подсети с адресом 10.0.3.100 на котором мог бы быть нашим контейнер, на 80м порту которого мог бы висеть например веб-сервер apache.

Однако, проброс портов может оказаться излишним если вы хотите например иметь изолированные, транспортабельные веб-проекты. Можно поставть шустрый кеширующий проксирующий веб-сервер nginx, и прописывать проброс на компьютеры виртуальной подсети уже в его конфигурациях, что сделает дополнительную оптимизацию "быстрый кеширующий прокси - основательный сервер приложений" даже если вы поставите на бекенд простой апач. Конфигурационный файл для энджи делается очень просто:

upstream apache-server {
        server 10.0.3.100:80 max_fails=3 fail_timeout=30s;
}

server {
        listen 80;

        server_name mycompany.ru www.mycompany.ru;

        location / {
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_redirect off;
                proxy_pass  http://apache-server;
        }
}

Для lxc также есть веб-морда, контейнеры можно добавлять в автозапуск, но это все вы можете нагуглить и без меня;)

Среднее (0 Голоса)
Средний рейтинг 0.0 звезд из 5.


Пока нет комментариев. Будь первым.