GNU/Linux >> Znalost Linux >  >> Ubuntu

Nastavte Linux Container s LXC na Ubuntu 16.04

Linuxové kontejnery (LXC) je open source, odlehčený virtualizační software na úrovni operačního systému, který nám pomáhá provozovat více izolovaných linuxových systémů (kontejnerů) na jediném hostiteli Linuxu. LXC poskytuje prostředí Linuxu podobné standardní instalaci Linuxu, ale bez potřeby samostatného jádra. LXC nenahrazuje standardní virtualizační software, jako je VMware, VirtualBox a KVM, ale je dostatečně dobrý, aby poskytoval izolované prostředí, které má vlastní CPU, paměť, blokové I/O, síť.

LXC je vydáno 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 na Ubuntu 16.04 a jak vytvořit a spravovat LXC pomocí příkazového řádku a také pomocí webového portálu LXC .

Tento tutoriál by měl fungovat i na předchozích verzích Ubuntu, jako je Ubuntu 14.04 / 14.10 / 15.04 / 15.10

Předpoklady:

Kontejnery LXC používají síťový most pro přístup do/z externí sítě. Před spuštěním kontejneru musíme vytvořit síťový most na Ubuntu.

Postupujte podle kroků pro konfiguraci přemostění na Ubuntu; Vytvářím přemostěné rozhraní „br0 “ pomocí ethernetové karty „ens33

$ sudo nano /etc/network/interfaces# soubor rozhraní(5) používaný ifup(8) a ifdown(8)auto loiface lo inet loopback##Bridge  Název ### auto br0### Informace o mostu iface br0 inet staticbridge_ports ens33bridge_stp offbridge_fd 9### Bridge IP ### adresa 192.168.12.15maska ​​sítě 255.255.255.0síť 192.168.12.0vysílání 192.168.12.255brána 192.168.12.2dns-nameservery 8.8.8.8

Nainstalujte LXC na Ubuntu 16.04:

Nyní je čas nainstalovat LXC. Nainstalujte LXC a další balíčky, aby kontejnery fungovaly správně.

$ sudo apt-get install lxc lxc-templates wget bridge-utils

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

$ sudo lxc-checkconfig Konfigurace jádra nebyla nalezena v /proc/config.gz; hledání...Konfigurace jádra nalezena na /boot/config-4.4.0-15-generic--- Jmenné prostory ---Jmenné prostory:enabledUtsname jmenný prostor:enabledIpc jmenný prostor:enabledPid jmenný prostor:enabledUser jmenný prostor:enabledNetwork namespace:enabledVíce instancí /dev/pts :enabled--- Control groups ---Cgroup:enabledCgroup clone_children flag:enabledCgroup device:enabledCgroup sched:enabledCgroup cpu account:enabledCgroup řadič paměti:enabledCgroup cpuset:enabled--- Různé ---Veth pair device:enabledMacvlan:enabledVlan:enabledBridges :enabledAdvanced netfilter:enabledCONFIG_NF_NAT_IPV4:enabledCONFIG_NF_NAT_IPV6:enabledCONFIG_IP_NF_TARGET_MASQUERADE:enabledCONFIG_IP6_NF_TARGET_MASQUERADE:enabledCONFIG_NETFILTER_XT_TARGET_CHECKSUM:enabledFUSE (pro použití s lxcfs):povoleno --- Checkpoint / obnovit --- checkpoint obnovit:enabledCONFIG_FHANDLE:enabledCONFIG_EVENTFD:enabledCONFIG_EPOLL:enabledCONFIG_UNIX_DIAG:enabledCONFIG_INET_DIAG:enabledCONFIG_PACKET_DIAG:enabledCONFIG_NETLINK_DIAG:en Možnosti abledFile:enabledPoznámka:Před zavedením nového jádra můžete zkontrolovat použití jeho konfigurace:CONFIG=/path/to/config /usr/bin/lxc-checkconfig

Konfigurace sítě LXC:

Zakažte výchozí most „lxcbr0 “, byl vytvořen jako součást instalace LXC.

$ sudo nano /etc/default/lxc-net

Nastavte „USE_LXC_BRIDGE “ na „false “.

USE_LXC_BRIDGE="false"

Nakonfigurujte LXC pro použití můstku „br0 “, který jsme vytvořili dříve. Pokud již máte nakonfigurovaný jakýkoli jiný most, můžete to nastavit v níže uvedeném souboru.

$ sudo nano /etc/lxc/default.conf
lxc.network.type =vethlxc.network.link =br0  # Nahraďte názvem svého mostu lxc.network.flags =uplxc.network.hwaddr =00:16:3e:xx:xx:xx
Restartujte server, abyste povolili síťový most

Vytvoření prvního linuxového kontejneru:

LXC vám poskytuje hotové šablony pro snadnou instalaci linuxových kontejnerů. Šablony se obvykle nacházejí v /usr/share/lxc/templates .

$ sudo ls /usr/share/lxc/templates/lxc-alpine    lxc-archlinux  lxc-centos  lxc-debian    lxc-fedora  lxc-openmandriva  lxc-oracle  lxc-lxlxlxware  lxc-lxlxlxware  lxc-lxlxlx untlc lxc-lxlxlack untlxc-lxlxlx  untlx -busybox    lxc-cirros  lxc-download  lxc-gentoo  lxc-opensuse      lxc-plamo   lxc-sparclinux  lxc-ubuntu

Pojďme vytvořit náš první kontejner Ubuntu, zadejte následující příkaz v terminálu

$ sudo lxc-create -n ubuntu_lxc -t ubuntu

Kde,

-n

-t <šablona>

LXC začne vytvářet kontejner „ubuntu_lxc “, dostanete výstup něco jako níže.

Ukázkový výstup:

Kontrola stahování mezipaměti v /var/cache/lxc/xenial/rootfs-amd64 ...Instalace balíčků do šablony:ssh,vim,language-pack-enStahování ubuntu xenial minimal ...I:Načítání InReleaseI:Kontrola podpisu vydáníI :Platný podpis vydání (ID klíče 790BC7277767219C42C86F933B4FE6ACC0B21F32)I:Načítání balíčkůI:Ověřování balíčkůI:Získávání balíčkůI:Ověřování balíčkůI:Vyřešení závislostí požadovaných balíčků...I:Řešení základních balíčků... . . Stáhnout kompletníKopírování /var/cache/lxc/xenial/rootfs-amd64 do /var/lib/lxc/ubuntu_lxc/rootfs ...Kopírování rootfs do /var/lib/lxc/ubuntu_lxc/rootfs ...Generování místních nastavení (to může trvat chvíli)...  cs_IN.UTF-8... hotovoGenerace dokončena.Vytváření klíče SSH2 RSA; Může to nějakou dobu trvat ... 2048 SHA256:2GY+KOAVDYEFBKZSJUEMTV5PXUMNVPIlTXCAZSYSPJA Root@Raj-Virtual-Machine (RSA) Vytváření klíče SSH2 DSA; Může to nějakou dobu trvat ... 1024 SHA256:+PXVAKGV7KUDS2INF7AKBYHME58OIOPJFTNFWJ1FPK0 kořen@Raj-Virtual-Machine (DSA) Vytváření klíče Ssh2 ECDSA; Může to nějakou dobu trvat ... 256 SHA256:VH1U7WGEMPMEZTWVIDZT34FTSQ+OQUKBPJZJP1KHC ROOT@Raj-Virtual-Machine (ECDSA) Vytváření klíče SSH2 ED25519; Může to nějakou dobu trvat ... 256 SHA256:QZVWVVYNMJUSDZHQ5IJ/R8USWBKRSHUG2VWCEVMJGFZK Root@Raj-Virtual-Machine (ED25519) Invoke-RC.D:Policy-rc.d Deided START. Místní čas je nyní:      Čt Dub  7 17:53:19 UTC 2016. Univerzální čas je nyní:  Čt Dub  7 17:53:19 UTC 2016.### Výchozí uživatel je 'ubuntu' s heslem 'ubuntu'  !# Použijte příkaz 'sudo' ke spouštění úloh jako root v kontejneru.##

Poznamenejte si prosím přihlašovací údaje, tyto údaje budete potřebovat pro přihlášení do kontejnerů.

Pokud chcete vytvořit kontejner založený na Ubuntu 14.04, použijte následující příkaz.

$ sudo lxc-create  -t ubuntu -n trusty_lxc -- -r trusty -a amd64

-r

-a

Spouštění linuxových kontejnerů:

Jakmile vytvoříte kontejnery, spusťte jej pomocí následujícího příkazu -d pro spuštění kontejnerů na pozadí.

$ sudo lxc-start -n ubuntu_lxc -d

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

$ sudo lxc-console -n ubuntu_lxc

Pro přihlášení zadejte uživatelské jméno (ubuntu) a heslo (ubuntu). Výchozí přihlašovací údaje naleznete na konci výstupu při vytváření kontejneru.

Ukázkový výstup:

Připojeno k tty 1Zadáním  ukončíte konzolu,  vstoupíte do samotného Ctrl+aUbuntu Xenial Xerus (vývojová větev) ubuntu_lxc pts/0ubuntu_lxc přihlášení:ubuntu Heslo: Vítejte v Ubuntu Xenial Xerus (vývojová větev) (GNU/Linux 4.4.0-15-generic x86_64) * Dokumentace:  https://help.ubuntu.com/Programy zahrnuté v systému Ubuntu jsou svobodný software; přesné podmínky distribuce pro každý program jsou popsány v jednotlivých souborech v /usr/share/doc/*/copyright.Ubuntu se nevztahuje ABSOLUTNĚ ŽÁDNÁ ZÁRUKA v rozsahu povoleném příslušným zákonem. Chcete-li spustit příkaz jako správce (uživatel „root“), použijte „sudo ". Podrobnosti viz "man sudo_root".ubuntu@ubuntu_lxc:~$

V tomto kontejneru můžete provádět veškerou svou práci jako na linuxových serverech.

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

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

$ sudo lxc-console -n ubuntu_lxc

Práce s linuxovými kontejnery:

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

$ sudo lxc-lsubuntu_lxc

Pomocí následujícího příkazu vypište kontejnery, které jsou aktuálně spuštěny na hostitelském počítači.

$ sudo lxc-ls --activeubuntu_lxc

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

Pro výpis kontejnerů s podrobnými informacemi můžete použít následující příkaz.

$ sudo lxc-ls  -fNAME       STAV   AUTOMATICKÉ SPUŠTĚNÍ SKUPINY IPV4          IPV6ubuntu_lxc BĚŽÍ 0          -      192.168.12.18 -

Chcete-li získat podrobnosti o běžícím kontejneru, zadejte následující příkaz.

$ sudo lxc-info -n ubuntu_lxcName:           ubuntu_lxcState:          RUNNINGPID:            2933IP:         strong> 1.        strong> 1. 11 Využití procesoru:        0,90 sekund Využití BlkIO:      20,96 Využití MiBMemory:     31,67 Využití MiBKMem:       0 bajtůLink:           vethFLQOYF TX bajtů:   > 9 6 B bytů TX:4 B Ki 6 Kital B 3. 1 

K připojení ke kontejnerům můžete použít IP adresu.

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

$ sudo lxc-stop -n ubuntu_lxc

Klonovací kontejnery:

LXC nabízí funkci klonování kontejneru ze stávajícího kontejneru, spusťte následující příkaz pro klonování existujícího kontejneru „ubuntu_lxc“ do nového kontejneru „ubuntu_lxc_clone“.

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

$ sudo lxc-copy -n ubuntu_lxc -N ubuntu_lxc_clone

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

$ sudo lxc-lsubuntu_lxc       ubuntu_lxc_clone

Můžete spustit klonovaný kontejner a začít na něm pracovat.

$ sudo lxc-start -n ubuntu_lxc_clone
$ sudo lxc-console -n ubuntu_lxc_clonePřipojeno k tty 1Zadáním  ukončíte konzolu,  vstoupíte do samotného Ctrl+aUbuntu Xenial Xerus (vývojová větev) ubuntu_lxc_0ubclone_pts login:ubuntuPassword:Poslední přihlášení:So 9. dubna 16:15:22 UTC 2016 z 192.168.12.1 na pts/4Vítejte v Ubuntu Xenial Xerus (vývojová větev) (GNU/Linux 4.4.0  https:*15_64 Documentation:  x864/64 Documentation /help.ubuntu.com/Chcete-li spustit příkaz jako správce (uživatel "root"), použijte "sudo ". Podrobnosti viz "man sudo_root".ubuntu@ubuntu_lxc_clone:~$

Vypněte kontejner z konzole LXC.

ubuntu@ubuntu_lxc_clone:~$ vypnutí sudo

Pořízení snímku:

LXC také nabízí další funkci nazvanou snímek, proveďte snímek podle níže uvedených kroků.

Poznámka:Před pořízením snímku se ujistěte, že kontejner neběží. Zastavte spuštěný kontejner pomocí následujícího příkazu.

$ sudo lxc-stop -n ubuntu_lxc_clone

Pro ukázku si udělejme snímek ubuntu_lxc_clone.

$ sudo lxc-snapshot -n ubuntu_lxc_clone

Ukázkový výstup:

lxc-snapshot:lxccontainer.c:do_lxcapi_snapshot:3371 Snímek požadovaného kontejneru zálohovaného adresářem.lxc-snapshot:lxccontainer.c:do_lxcapi_snapshot:3372 Vytvoření kopie-klonu. Pokud chcete snímky, pak lxc-snapshot:lxccontainer.c:do_lxcapi_snapshot:3373 prosím nejprve vytvořte klon aufs nebo overlayfs, snímek lxc-snapshot:lxccontainer.c:do_lxcapi_snapshot a zachovejte původní kontejner:3. 

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

$ sudo lxc-snapshot -L -n ubuntu_lxc_clonesnap0 (/var/lib/lxc/ubuntu_lxc_clone/snaps) 2016:04:09 22:35:16

V Ubuntu jsou snímky LXC uloženy v „/var/lib/lxc//snaps

Obnovování snímku:

Chcete-li obnovit kontejner ze snímku, který jsme pořídili dříve, použijte následující příkaz.

$ sudo lxc-snapshot -r snap0 -n ubuntu_lxc_clone

Ničení kontejnerů:

K odstranění kontejneru použijte následující příkaz.

Poznámka:Před zničením kontejnerů musíte odstranit snímky. ($ sudo lxc-snapshot -d snap0  -n ubuntu_lxc_clone)

$ sudo lxc-destroy -n ubuntu_lxc_clone

Spuštění kontejneru CentOS na Ubuntu 16.04:

Nainstalujte balíček „yum“ pro kontejnery založené na Redhat.

$ sudo apt-get install yum

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

$ sudo lxc-create -n centos_lxc -t centos -- -R 7 -a x86_64Host CPE ID z /etc/os-release:Kontrola stahování mezipaměti v /var/cache/lxc/centos/x86_64/7/rootfs ... Stahování CentOS minimální ... Základna | 3,6 kb 00:00Base/Primance_DB | 5,3 MB 12:26 Updates | 3,4 kb 00:00updates/primární_db | 3,9 MB     02:17Nastavení Install ProcessResolving Dependencies--> Spuštění kontroly transakcí---> Balíček chkconfig.x86_64 0:1.3.61-5.el7 bude nainstalován Dokončeno! Oprava umístění rpmdb ...Stahování dokončeno. Kopírovat /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:nelze číst /var/ lib/lxc/centos_lxc/rootfs/etc/init/tty.conf:Žádný takový soubor nebo adresář Ukládání hesla uživatele root ve složce '/var/lib/lxc/centos_lxc/tmp_root_pass' Heslo pro uživatele root.passwd končící platností:Ú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:Žádný takový soubor nebo adresář Byly vytvořeny kořenové soubory a konfigurace kontejneru. Upravte konfigurační soubor a zkontrolujte/povolte 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šenou platností):        chroot /var/lib/lxc/centos_lxc/rootfs passwd  

Výchozí přihlašovací údaje můžete získat na konci výstupu.

Spusťte a vezměte konzolu kontejneru Ubuntu pomocí následujícího příkazu. Při prvním přihlášení musíte změnit heslo uživatele root.

$ sudo lxc-start -n centos_lxc -d$ sudo lxc-console -n centos_lxcPřipojeno k tty 1Zadáním  ukončíte konzolu,  spustíte samotný Ctrl+aCentOS Linux 7 (Core)Kernel 4.4.0-15-generic na x86_64centos_lxc přihlášení:root Heslo: Jste povinni okamžitě změnit heslo (vynuceno uživatelem root) Změna hesla pro uživatele root. (aktuální) heslo UNIX: Nové heslo: Znovu zadejte nové heslo: [root@centos_lxc ~]# 

To je vše! Děkuji za přečtení. Buďte sociální, sdílejte to se svými přáteli.


Ubuntu
  1. Jak nastavit Android SDK 4.0.3 s NetBeans IDE 7.1 na Linux Mint 12 / Ubuntu 11.10

  2. Nastavte Wifi hotspot v Linux Mint/Ubuntu

  3. Usb grafický adaptér s ovladači pro Linux/ubuntu?

  1. Nastavení serveru WebDAV na Ubuntu Linux

  2. Počáteční nastavení serveru s Ubuntu 14.04

  3. Používáte Ubuntu s nastavením na dvou obrazovkách?

  1. Jak nainstalovat WordPress s Dockerem na Ubuntu

  2. Jak nastavit IP Failover s KeepAlived na Ubuntu a Debianu

  3. Linux – Lxc; Nasazení obrázků pomocí nejmenšího možného X11?