GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat a nastavit LXC Linux Containers na CentOS / RHEL / Ubuntu

LXC znamená Linux Containers.

Linuxové kontejnery jsou odlehčené „virtualizační“ metody, které spouští více virtuálních jednotek současně na jediném řídicím hostiteli na jediném linuxovém jádře.

Linuxové jádro obsahuje cgroups pro izolaci zdrojů (CPU, paměť, blokové I/O, síť atd.), což nevyžaduje spouštění žádných virtuálních strojů.

Cgroups také poskytuje izolaci jmenného prostoru pro úplnou izolaci aplikací pohled na operační prostředí, včetně stromů procesů, sítí, uživatelských id a připojených souborových systémů.

LXC je software s otevřeným zdrojovým kódem a je licencován pod licencí GNU LGPLv2.1+.

Kontejnery ve skutečnosti využívají funkce jádra zvané jmenné prostory, cgroups a chrooty, aby oddělily uzavřenou oblast.

Takže konečný výsledek LXC vypadá hodně jako virtuální stroj, ale bez hypervizoru.

1. Předběžná žádost o instalaci LXC

Před instalací LXC se ujistěte, že je váš systém aktuální pomocí yum update, jak je uvedeno níže.

# yum update

LXC je závislý na dvou knihovnách; libpcap a libcgroup. To také vyžaduje busybox a bridge utility.

Nainstalujte následující požadované balíčky pro naši instalaci LXC.

# yum install libcap-devel libcgroup busybox wget bridge-utils

Ujistěte se, že máme všechny kompilátory a související vývojové nástroje, které jsou nutné ke kompilaci a instalaci jakéhokoli softwaru ze zdrojového kódu.

# yum groupinstall "Development tools"

Další informace o skupinách yum naleznete v našem článku o příkazech yum.

2. Stáhněte si LXC Linux Containers

Stáhněte si nejnovější verzi LXC z Linux Containers Project.

Použijte wget ke stažení tar ball nejnovější stabilní verze LXC do vašeho počítače, jak je znázorněno níže.

# cd /

# wget http://linuxcontainers.org/downloads/lxc-1.1.5.tar.gz

Pokud se při používání výše uvedeného wget zobrazí chybová zpráva související s certifikátem, použijte možnost no-check-certificate, jak je uvedeno níže.

# wget --no-check-certificate https://linuxcontainers.org/downloads/lxc-1.1.5.tar.gz

Alternativně, pokud chcete, můžete také použít git clone ke stažení nejnovější vývojové verze nebo stabilní verze, jak je uvedeno níže.

git clone git://github.com/lxc/lxc -b {branch}

Ve výše uvedeném příkazu může být {branch} buď „master“ pro aktuální vývojovou větev, nebo „stable-1.0“ pro stabilní větev aktualizace verze 1.0.

3. Nakonfigurujte adaptér Bridged Adapter

Dále vytvořte přemostěný adaptér a nakonfigurujte statickou IP na přemostěném adaptéru, jak je znázorněno v následujícím příkladu ifcfg-eth0. Ujistěte se, že váš fyzický adaptér ukazuje na tento přemostěný adaptér v ifcfg-eth0.

# cd /etc/sysconfig/network-scripts	

# vi ifcfg-br0
DEVICE="br0"
BOOTPROTO="static"
IPADDR="xxx.xxx.xxx.xxx"
NETMASK="255.255.255.xxx"
ONBOOT="yes"
TYPE="Bridge"
NM_CONTROLLED="no"

Nahraďte všechna „xxx“ ve výše uvedeném souboru hodnotami, které odpovídají vaší IP adrese a masce sítě. Například změňte hodnotu IPADDR ve výše uvedeném souboru na ip-adresu vašeho počítače.

4. Nainstalujte LXC Linux Container

Dále rozbalte LXC tar ball, který jsme stáhli dříve, spusťte ./configure a proveďte make a make install, abyste nainstalovali LXC do vašeho systému, jak je znázorněno níže.

Ve výchozím nastavení to nainstaluje všechny binární soubory lxc do adresáře /usr/local/bin.

# cd /

# tar xvfz lxc-1.1.5.tar.gz

# cd lxc-1.1.5/

# ./configure

# make && make install

Následuje několik posledních řádků z výstupu pro výše uvedený příkaz ./configure.

# ./configure
...
...
config.status: creating src/python-lxc/setup.py
config.status: creating src/lua-lxc/Makefile
config.status: executing depfiles commands
config.status: executing default commands
----------------------------
Environment:
 - compiler: gcc
 - distribution: centos
 - init script type(s): sysvinit
 - rpath: no
 - GnuTLS: no
 - Bash integration: yes
Security features:
 - Apparmor: no
 - Linux capabilities: yes
 - seccomp: no
 - SELinux: no
 - cgmanager: no
Bindings:
 - lua: no
 - python3: no
Documentation:
 - examples: yes
 - API documentation: yes
 - user documentation: no
Debugging:
 - tests: no
 - mutex debugging: no
Paths:
 - Logs in configpath: no

Následuje několik posledních řádků z výstupu pro výše uvedený příkaz make.

# make
...
Building full member lists recursively...
Adding members to member groups.
...
Generating style sheet...
Generating index page...
Generating page index...
Generating example documentation...
Generating file sources...
Generating code for file /usr/save/lxc-1.1.5/src/lxc/attach_options.h...
Generating code for file /usr/save/lxc-1.1.5/src/lxc/lxccontainer.h...
Generating code for file /usr/save/lxc-1.1.5/src/lxc/lxclock.h...
Generating file documentation...
Generating docs for file /usr/save/lxc-1.1.5/src/lxc/attach_options.h...
...
Generating file member index...
make[2]: Leaving directory `/usr/save/lxc-1.1.5/doc/api'
make[2]: Entering directory `/usr/save/lxc-1.1.5/doc'
...
Making all in hooks
make[1]: Entering directory `/usr/save/lxc-1.1.5/hooks'
make[1]: Nothing to be done for `all'.
...

Následuje několik posledních řádků z výstupu pro výše uvedený příkaz make install.

# make install
...
Making install in hooks
make[1]: Entering directory `/usr/save/lxc-1.1.5/hooks'
 /bin/mkdir -p '/usr/local/share/lxc/hooks'
 /usr/bin/install -c clonehostname mountecryptfsroot ubuntu-cloud-prep squid-deb-proxy-client '/usr/local/share/lxc/hooks'
...
/bin/mkdir -p /usr/local/var/lib/lxc
/bin/mkdir -p /usr/local/var/cache/lxc
 /bin/mkdir -p '/usr/local/lib/pkgconfig'
 /usr/bin/install -c -m 644 lxc.pc '/usr/local/lib/pkgconfig'
...

5. Vytvořte měkký odkaz pro sdílené knihovny LXC

Spuštěním lxc-info ověřte, že je LXC úspěšně nainstalován. Pokud je vše správně nainstalováno, zobrazí se zpráva, že zadaný název kontejneru (například test) neexistuje. V této fázi jsme nevytvořili žádný kontejner. Chceme se jen ujistit, že tento příkaz nevyvolává žádné chyby související se sdílenou knihovnou.

# lxc-info --name test
test doesn't exist

V závislosti na tom, jak jsou věci nakonfigurovány ve vašem systému, můžete také obdržet následující chybovou zprávu související s knihovnou liblxc.so.1.

# lxc-info --name test
lxc-info: error while loading shared libraries: liblxc.so.1: cannot open shared object file: No such file or directory

V tomto případě to opravíte vytvořením odkazu s názvem libxc.so.1, jak je znázorněno níže, který bude odkazovat na správnou verzi souboru liblxc.so.x.x.x.

# ln -s /usr/local/lib/liblxc.so.1.1.5 /lib64/liblxc.so.1

# ls -l /lib64/liblxc.so.1
lrwxrwxrwx. 1 root root 30 Jan 20 09:17 /lib64/liblxc.so.1 -> /usr/local/lib/liblxc.so.1.1.5

6. Ověřte nastavení a konfiguraci LXC

Dále můžete také spustit lxc-checkconfig a ověřit, že je vaše prostředí lxc nastaveno správně.

Následující budou mít výstup ve čtyřech různých sekcích:1) Namespaces, 2) Control Groups 3) Misc a 4) Checkpoint/Restore. Částečný výstup je zobrazen níže.

# lxc-checkconfig
Kernel configuration not found at /proc/config.gz; searching...
Kernel configuration found at /boot/config-2.6.32-431.el6.x86_64
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
Network namespace: enabled
Multiple /dev/pts instances: enabled
--- Control groups ---
Cgroup: enabled
Cgroup namespace: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
..
--- Misc ---
Veth pair device: enabled
Macvlan: enabled
Vlan: enabled
Bridges: enabled
Advanced netfilter: enabled
..
--- Checkpoint/Restore ---
CONFIG_EVENTFD: enabled
CONFIG_EPOLL: enabled
..
Note : Before booting a new kernel, you can check its configuration
usage : CONFIG=/path/to/config /usr/local/bin/lxc-checkconfig

Pokud je vše ve vašem systému správně nakonfigurováno, ve výše uvedeném výstupu by všechny možnosti ve výše uvedených skupinách měly říkat „povoleno“.

Zítra v další části série článků LXC vysvětlíme, jak vytvořit, spustit a používat linuxové kontejnery lxc pomocí různých příkazů lxc.


Linux
  1. Jak nainstalovat Go ve Fedoře a Rocky Linux/Centos/RHEL

  2. Jak nainstalovat a nastavit Suricata IDS na Ubuntu 20.04

  3. Jak nainstalovat a nakonfigurovat telnet v RHEL / CentOS 5,6

  1. Co je Podman a jak nainstalovat Podman v Linuxu

  2. Jak nainstalovat VMware Player na CentOS/RHEL a Ubuntu

  3. Jak nainstalovat balíček zip/unzip v Linux CentOS/RHEL 7 a 8

  1. Jak nainstalovat redmine na RHEL 8 / CentOS 8 Linux

  2. Jak nainstalovat a nastavit ukázkovou službu s xinetd na RHEL 8 / CentOS 8 Linux

  3. Jak nainstalovat a nakonfigurovat OpenLDAP na CentOS / RHEL Linux