GNU/Linux >> Znalost Linux >  >> Cent OS

Nastavte Linuxový kontejner s LXC na CentOS 7 / RHEL 7

Linux kontejnery (LXC), je odlehčená metoda virtualizace na úrovni operačního systému, která nám umožňuje provozovat více izolovaných linuxových systémů (kontejnerů) na jednom hostiteli. LXC neposkytuje všechny funkce standardního virtualizačního softwaru, jako je VMware, VirtualBox a KVM, ale spíše poskytuje virtuální prostředí, které má vlastní CPU, paměť, bloky I/O, síť. LXC vytváří prostředí Linuxu podobné standardní instalaci Linuxu, ale bez potřeby samostatného jádra.

LXC je svobodný software a je vydán pod licencí GNU LGPLv2.1+. Projekt LXC je sponzorován společností Canonical Ltd, která stojí za OS Ubuntu.

V této příručce vám ukážu, jak nainstalovat LXC a jak vytvořit a spravovat LXC pomocí příkazového řádku a také pomocí webového portálu LXC .

Předpoklady

LXC není k dispozici na základním repo. Potřebujeme tedy přidat úložiště EPEL na server pomocí následujícího příkazu.

# yum -y install epel-release

Kontejnery LXC používají síťový most pro přístup k/z externí sítě. Před spuštěním kontejneru musíme vytvořit síťový most na CentOS 7 / RHEL 7 . Název síťového mostu by měl být „virbr0“

Nainstalujte LXC na CentOS 7

Jakmile splníte předpoklady, je čas nainstalovat LXC. Nainstalujte LXC a další důležité balíčky potřebné pro správné fungování kontejnerů.

# yum -y install lxc lxc-templates libcap-devel libcgroup busybox wget bridge-utils lxc-extra

Spuštěním následujícího příkazu zkontrolujte, zda je vše v pořádku pro spuštění kontejnerů.

# lxc-checkconfig Konfigurace jádra nebyla nalezena v /proc/config.gz; hledám... Konfigurace jádra nalezena na /boot/config-3.10.0-327.el7.x86_64 --- Jmenné prostory --- Jmenné prostory:povoleno Jmenný prostor Utsname:povolen Jmenný prostor IPC:povolen Jmenný prostor Pid:povolen Uživatelský jmenný prostor:povolen Síťový jmenný prostor :povoleno Více instancí /dev/pts:povoleno--- Kontrolní skupiny --- Cgroup:povoleno Příznak Cgroup clone_children:povoleno Zařízení Cgroup:povoleno Cgroup sched:povoleno Účet Cgroup cpu:povoleno řadič paměti Cgroup:povoleno Cgroup cpuset:povoleno-- - Různé --- Párové zařízení Veth:povoleno Macvlan:povoleno Vlan:povoleno Mosty:povoleno Pokročilý síťový filtr:povoleno CONFIG_NF_NAT_IPV4:povoleno CONFIG_NF_NAT_IPV6:povoleno CONFIG_IP_NF_TARGET_MASQUERADE:povoleno obnovení CONFIG_IP6_NF_QUERCHEGET_MAS-kontrola-kontrola-bodTARGET_CONFIG_MAS-kontrola-kontrola-bodTARGET_CONFIG_MAS povoleno CONFIG_FHANDLE:povoleno CONFIG_EVENTFD:povoleno CONFIG_EPOLL:povoleno CONFIG_UNIX_DIAG:povoleno CONFIG_INET_DIAG:povoleno CONFIG_PACKET_DIAG:povoleno CONFIG_NETLINK_DIA G:enabled Možnosti souboru:enabledPoznámka:Před zavedením nového jádra můžete zkontrolovat jeho konfiguraci použití:CONFIG=/path/to/config /usr/bin/lxc-checkconfig

Vytváření linuxových kontejnerů

LXC se dodává s hotovými šablonami pro snadnou instalaci kontejnerů a pomocí následujícího příkazu můžete vypsat seznam dostupných šablon.

# ls /usr/share/lxc/templates/ lxc-alpine    lxc-archlinux  lxc-centos  lxc-debian    lxc-fedora  lxc-openmandriva  lxc-oracle u  lxc-l-xcloud lxc-l-xlxcloud lxc-l-xlxc -cirros  lxc-download  lxc-gentoo  lxc-opensuse      lxc-plamo   lxc-ubuntu

Chcete-li vytvořit kontejner, zadejte následující příkaz.

# lxc-create -n centos_lxc -t centos

Kde,

-n

-t <šablona>

Jakmile zadáte výše uvedený příkaz, LXC začne vytvářet kontejner s názvem „centos_lxc “.

Ukázkový výstup:

ID CPE hostitele z /etc/os-release:cpe:/o:centos:centos:7 Kontrola stahování mezipaměti ve /var/cache/lxc/centos/x86_64/7/rootfs... Stahování centos minimální .. . Nabité pluginy:Základna nejrychlestmirror | 3.6 KB 00:00:00 Aktualizace | 3,4 kB  00:00:00 Určení nejrychlejších zrcadel . . . . Kompletní! Stahování dokončeno. Zkopírujte /var/cache/lxc/centos/x86_64/7/rootfs do /var/lib/lxc/centos_lxc/rootfs ... Kopírování rootfs do /var/lib/lxc/centos_lxc/rootfs ... sed:can't read /var/lib/lxc/centos_lxc/rootfs/etc/init/tty.conf:Žádný takový soubor nebo adresář Ukládání hesla uživatele root do '/var/lib/lxc/centos_lxc/tmp_root_pass' Heslo pro uživatele root vyprší. passwd:Úspěšné:nelze číst /var/lib/lxc/centos_lxc/rootfs/etc/rc.sysinit:Žádný takový soubor nebo adresář:nelze číst /var/lib/lxc/centos_lxc/rootfs/etc/rc. d/rc.sysinit:Nebyl vytvořen žádný takový soubor nebo adresář Container rootfs a config. Upravte konfigurační soubor, abyste zkontrolovali/povolili nastavení sítě. Dočasné heslo uživatele root je uloženo v:         '/var/lib/lxc/centos_lxc/ tmp_root_pass' Heslo uživatele root je nastaveno jako prošlé a bude vyžadovat jeho změnu při prvním přihlášení, což byste měli udělat co nejdříve. Pokud ztratíte heslo roota nebo jej chcete změnit bez spuštění kontejneru, můžete ho změnit z hostitele spuštěním následujícího příkazu (čímž také resetujete příznak s vypršením platnosti):        chroot /var/lib/lxc/centos_lxc/rootfs passwd  

Vezměte prosím na vědomí výše uvedené přihlašovací údaje a pro přihlášení do kontejnerů je musíte vyžadovat.

Přihlašovací údaje kontejnerů

Chcete-li se přihlásit do kontejneru (centos_lxc ), buď použijte dočasné heslo uživatele root uložené v následujícím umístění. V našem případě „Root-centos_lxc-KRzJLy ” je root heslo centos_lxc .

# cat /var/lib/lxc/centos_lxc/tmp_root_pass Root-centos_lxc-KRzJLy

nebo

Resetujte heslo uživatele root pomocí následujícího příkazu.

# chroot /var/lib/lxc/centos_lxc/rootfs passwd

PS:Ještě jste nespustili kontejnery.

Spouštění linuxových kontejnerů

Po vytvoření kontejnerů jej spusťte pomocí následujícího příkazu, běží na pozadí.

# lxc-start -n centos_lxc -d

Nyní vezměte konzolu kontejneru pomocí následujícího příkazu.

Poznámka:Ke spojení kontejneru s tty0 používám „-t“ s „0“, protože mi tty1 neodpovídal.

# lxc-console -n centos_lxc -t 0

Zadejte uživatelské jméno a heslo pro přihlášení. Přihlašovací údaje naleznete na konci výstupu při vytváření kontejneru. Při prvním přihlášení musíte změnit heslo uživatele root.

Ukázkový výstup:

Připojeno k tty 0 Zadejte  pro ukončení konzoly,  pro vstup do samotného Ctrl+a CentOS Linux 7 (Core) Kernel 3.10.0-327.el7.x86_64 na x86_64 centos_lxc login:root Heslo:Musíte si okamžitě změnit heslo (vynuceno rootem) Změna hesla pro roota. (aktuální) UNIX heslo:Nové heslo:Znovu zadejte nové heslo: [root@centos_lxc ~]#

Jakmile se přihlásíte, můžete provádět veškerou práci v tomto kontejneru jako na normálním linuxovém serveru.

Chcete-li opustit konzolu kontejneru, stiskněte Ctrl+a a poté q . Nyní budete vráceni zpět na terminál hostitelského počítače.

Pokud se chcete ke kontejneru znovu připojit (kontejner je stále spuštěn), spusťte následující příkaz.

# lxc-console -n centos_lxc -t 0

Práce s linuxovými kontejnery

Chcete-li zobrazit seznam kontejnerů na hostitelském počítači, použijte následující příkaz.

# lxc-ls centos_lxc

Uveďte také seznam kontejnerů, které jsou aktuálně aktivní a běží na hostitelském počítači.

# lxc-ls --active centos_lxc

Protože mám aktuálně spuštěný pouze jeden kontejner, proto můžete vidět stejný výstup pro oba příkazy.

Pokud chcete získat úplné informace o běžícím kontejneru, zadejte následující příkaz.

# LXC -INFO -N CENTOS_LXC Název:CENTOS_LXC Stav:Běh PID:4047 IP:192.168.12.16 CPU Použití:0,47 sekundy Blkio Použití:1,53 KiB RX bajtů:      1,94 KiB Celkem bajtů:   3,47 KiB

Výše uvedený příkaz vám poskytuje podrobné informace (název, stav, IP adresa, CPU, paměť, I/O a využití sítě) kontejneru „centos_lxc“.

K připojení ke kontejnerům můžete místo konzole LXC použít také adresu IP.

Běžící kontejner můžete zastavit pomocí příkazu „lxc-stop“, k zastavení kontejneru „centos_lxc“ použijte následující příkaz.

# lxc-stop -n centos_lxc

Klonování kontejnerů Linux

LXC má budoucnost v klonování kontejneru ze stávajícího kontejneru. Spusťte následující příkaz pro klonování existujícího kontejneru „centos_lxc“ do nového kontejneru „centos_lxc_clone“.

Poznámka:Před zahájením klonování musíte zastavit běžící kontejner.

# lxc-clone centos_lxc centos_lxc_clone Vytvořen kontejner centos_lxc_clone jako kopie centos_lxc

Zkontrolujte, zda byl kontejner úspěšně vytvořen.

# lxc-ls centos_lxc  centos_lxc_clone

Můžete začít pracovat s novým kontejnerem jako obvykle.

# lxc_start -n centos_lxc_clone -d
# lxc_console -n centos_lxc_clone -t 0 Připojeno k tty 0 Zadejte  pro ukončení konzoly,  pro vstup do samotného Ctrl+a CentOS Linux 7 (Core) Kernel 3.10.0 -327.el7.x86_64 na x86_64 centos_lxc_clone přihlašovací jméno:root Heslo:Poslední přihlášení:So 26. března 14:11:17 z 192.168.12.1 [root@centos_lxc_clone ~]#

Vypněte kontejner zevnitř konzoly.

[root@centos_lxc_clone ~]# vypnutí

Pořízení snímku

LXC má také další budoucnost zvanou snapshot, použijte následující příkazy.

Poznámka:Před pořízením snímku musíte kontejner zastavit.

# lxc-stop -n centos_lxc_clone

Pro ukázku pořizuji snímek centos_lxc_clone.

# lxc-snapshot -n centos_lxc_clone

Ukázkový výstup:

lxc_container:lxccontainer.c:lxcapi_snapshot:2879 Snímek požadovaného kontejneru zálohovaného adresářem.lxc_container:lxccontainer.c:lxcapi_snapshot:2880 Vytvoření kopie-klonu. Pokud chcete snímky, pak lxc_container:lxccontainer.c:lxcapi_snapshot:2881 nejprve vytvořte klon aufs nebo overlayfs, snímek, který lxc_container:lxccontainer.c:lxcapi_snapshot:2882 původní kontejner. a ponechejte si původní kontejner. 

Chcete-li zjistit, kam se snímek ukládá, spusťte následující příkaz.

# lxc-snapshot -L -n centos_lxc_clone snap0 (/var/lib/lxcsnaps/centos_lxc_clone) 2016:03:26 10:59:10

V Centos 7 jsou snímky LXC uloženy v „/var/lib/lxcsnaps/

Obnovování snímku

Chcete-li obnovit kontejner ze snímku, použijte následující příkaz.

# lxc-snapshot -r snap0 -n centos_lxc_clone

Odebrání kontejnerů

Chcete-li kontejner úplně odstranit, použijte následující příkaz.

# lxc-destroy -n centos_lxc_clone

Spuštění kontejneru Ubuntu na CentOS 7

Narazil jsem na několik problémů, když jsem se pokoušel spustit kontejner Ubuntu na CentOS, byl jsem schopen spustit Ubuntu s pomocí některých vylepšení sdílených na jiných webech.

Nainstalujte níže uvedené balíčky pro kontejnery založené na Debianu.

# yum -y nainstalovat debootstrap perl# cd /usr/sbin; ln -sf debootstrap qemu-debootstrap

Spusťte následující příkaz k nahrazení zrcadla Debianu zrcadlem ubuntu.

# sed -i 's/DEF_HTTPS_MIRROR="https:\/\/mirrors.kernel.org\/debian"/DEF_HTTPS_MIRROR="https:\/\/mirrors.kernel.org\/ubuntu"/g' /usr/sbin/debootstrap

Díky unix.stackexchange.com

Získejte přesnou klíčenku Ubuntu a umístěte ji do adresáře klíčenky.

# cd /tmp# wget "http://archive.ubuntu.com/ubuntu/pool/main/u/ubuntu-keyring/ubuntu-keyring_2011.11.21.tar.gz"# tar xzf ubuntu-keyring_2011.11.21 .tar.gz# mkdir /usr/share/keyrings/# cp /tmp/ubuntu-keyring-2011.11.21/keyrings/ubuntu-archive-keyring.gpg /usr/share/keyrings/

Díky blog.toxa.de

Vytvořte kontejner Ubuntu pomocí následujícího příkazu.

# lxc-create -n ubuntu_lxc -t ubuntuKontrola stahování mezipaměti ve /var/cache/lxc/precise/rootfs-amd64 ... Instalace balíčků v šabloně:ssh,vim,language-pack-enStahování ubuntu precizní minimální .. .I:Načítání Release I:Načítání Release.gpg I:Kontrola podpisu vydáníI:Platný podpis vydání (ID klíče 630239CC130E1A7FD81A27B140976EAF437D05B5)I:Načítání balíčků I:Ověřování balíčků I:Načítání2 balíčků DokončenoNastavování2ma1 generování.0 48-4ubuntu7.4) ...Nastavení dmsetup (2:1.02.48-4ubuntu7.4) ...update-initramfs:odložení aktualizace (spouštěč aktivován) Zpracování spouštěčů pro knihovnu libc-bin ...odložené zpracování ldconfig nyní trvá placeZpracování spouštěčů pro initramfs-tools ...Zpracování spouštěčů pro resolvconf ...invoke-rc.d:policy-rc.d odepřelo provedení startu. Stažení dokončeno Zkopírujte /var/cache/lxc/precise/rootfs-amd64 do /var/ lib/lxc/ubuntu_lxc/rootfs ... Kopírování rootfs do /var/lib/lxc/ubuntu_lxc/rootfs ...Generování národních prostředí...  cs_US.UTF-8... u p-to-dateGeneration complete.Creating SSH2 RSA key; to může nějakou dobu trvat ...Vytvoření klíče SSH2 DSA; to může nějakou dobu trvat ...Vytvoření klíče SSH2 ECDSA; to může chvíli trvat...Časové pásmo v kontejneru není nakonfigurováno. Upravte jej ručně.### Výchozí uživatel je 'ubuntu' s heslem 'ubuntu'!# Ke spouštění úloh jako root v kontejneru použijte příkaz 'sudo'. ##

Z výše uvedeného výstupu můžete vidět, že výchozí uživatel je „ubuntu“ a heslo pro uživatele je „ubuntu“.

Vezměte konzolu kontejneru Ubuntu pomocí následujícího příkazu.

# lxc_console -n ubuntu_lxcUbuntu 12.04.5 LTS ubuntu_lxc consoleubuntu_lxc přihlášení:ubuntuHeslo:Vítejte v Ubuntu 12.04.5 LTS (GNU/Linux 3.10.0.0.4 x1.6.4) 8 https 8 x1.6.1 Dokument .ubuntu.com/Programy zahrnuté v systému Ubuntu jsou svobodným softwarem; přesné podmínky distribuce pro každý program jsou popsány v jednotlivých souborech v /usr/share/doc/*/copyright.Ubuntu neposkytuje ABSOLUTNĚ ŽÁDNOU ZÁRUKU v rozsahu povoleno platnými zákony. Přejete si vstoupit do bezpečnostního kontextu? [N]  ubuntu@ubuntu_lxc:~$

PS:Nezkontroloval jsem funkčnost serveru kromě přihlášení. V případě problémů prosím napište sem.

To je vše. Buďte sociální, sdílejte to se svými přáteli.


Cent OS
  1. Nastavte Linux Container s LXC na Ubuntu 16.04

  2. Nastavte Rsyslog s MySQL a LogAnalyzer na CentOS/RHEL 6/5

  3. Nelze spustit operační systém Linux s auditem (CentOS/RHEL)

  1. Nastavte SysLog Server na CentOS 6 / RHEL 6

  2. CentOS / RHEL 7:Jak upravit argumenty GRUB2 pomocí grubby

  3. Jak vytvořit kontejner LXC pomocí lxcbr0 a virbr0 v CentOS/RHEL

  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 hvězdičku na RHEL 8 / CentOS 8 Linux