GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Linux-Container mit LXC auf Ubuntu 16.04 einrichten

Linux-Container (LXC) ist eine leichtgewichtige Open-Source-Virtualisierungssoftware auf Betriebssystemebene, die uns hilft, mehrere isolierte Linux-Systeme (Container) auf einem einzigen Linux-Host auszuführen. LXC bietet eine Linux-Umgebung, die einer Standard-Linux-Installation so nahe kommt, jedoch ohne die Notwendigkeit eines separaten Kernels. LXC ist kein Ersatz für Standard-Virtualisierungssoftware wie VMware, VirtualBox und KVM, aber es ist gut genug, um eine isolierte Umgebung mit eigener CPU, Speicher, Block-I/O und Netzwerk bereitzustellen.

LXC wird unter der GNU LGPLv2.1+-Lizenz veröffentlicht. Das LXC-Projekt wird von Canonical Ltd gesponsert, das hinter Ubuntu OS steht.

In dieser Anleitung zeige ich Ihnen, wie Sie LXC auf Ubuntu 16.04 installieren und LXC über die Befehlszeile sowie über das LXC-Webportal erstellen und verwalten .

Dieses Tutorial sollte auch auf früheren Versionen von Ubuntu funktionieren, wie z. B. Ubuntu 14.04 / 14.10 / 15.04 / 15.10

Voraussetzungen:

LXC-Container verwenden Bridge-Netzwerke, um Zugriff auf/von einem externen Netzwerk zu haben, bevor wir den Container starten, müssen wir eine Netzwerkbrücke auf Ubuntu erstellen.

Befolgen Sie die Schritte zum Konfigurieren von Bridging auf Ubuntu; Ich erstelle eine Bridged-Schnittstelle „br0 “ mit der Ethernet-Karte „ens33

$ sudo nano /etc/network/interfaces# Interfaces(5)-Datei, die von ifup(8) und ifdown(8)auto loiface lo inet loopback##Bridge  Name ### verwendet wird auto br0### Brückeninformationen iface br0 inet staticbridge_ports ens33bridge_stp offbridge_fd 9### Bridge-IP ### Adresse 192.168.12.15 Netzmaske 255.255.255.0 Netzwerk 192.168.12.0 Broadcast 192.168.12.255 Gateway 192.168.12.2 DNS-Nameserver 8.8.8.8

Installieren Sie LXC auf Ubuntu 16.04:

Jetzt ist es an der Zeit, LXC zu installieren. Installieren Sie LXC und andere Pakete, damit die Container ordnungsgemäß funktionieren.

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

Führen Sie den folgenden Befehl aus, um zu überprüfen, ob alles in Ordnung ist, um Container auszuführen.

$ sudo lxc-checkconfigKernel-Konfiguration nicht in /proc/config.gz gefunden; Suche ... Kernel-Konfiguration gefunden unter /boot/config-4.4.0-15-generic--- Namespaces ---Namespaces:enabledUtsname-Namespace:enabledIpc-Namespace:enabledPid-Namespace:enabledUser-Namespace:enabledNetwork-Namespace:enabledMultiple /dev/pts-Instanzen :enabled--- Control groups ---Cgroup:enabledCgroup clone_children flag:enabledCgroup device:enabledCgroup sched:enabledCgroup cpu account:enabledCgroup memory controller:enabledCgroup cpuset:enabled--- Misc ---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 (zur Verwendung mit lxcfs):aktiviert --- Checkpoint / Wiederherstellung --- Checkpoint wiederherstellen:enabledCONFIG_FHANDLE:enabledCONFIG_EVENTFD:enabledCONFIG_EPOLL:enabledCONFIG_UNIX_DIAG:enabledCONFIG_INET_DIAG:enabledCONFIG_PACKET_DIAG:enabledCONFIG_NETLINK_DIAG:en abledFile Capabilities:enabledHinweis:Bevor Sie einen neuen Kernel booten, können Sie seine Konfigurationsverwendung überprüfen:CONFIG=/path/to/config /usr/bin/lxc-checkconfig

Konfigurieren des LXC-Netzwerks:

Deaktivieren Sie die Standardbrücke „lxcbr0 “,  wurde im Rahmen der LXC-Installation erstellt.

$ sudo nano /etc/default/lxc-net

Stellen Sie „USE_LXC_BRIDGE “ zu „falsch “.

USE_LXC_BRIDGE="false"

Konfigurieren Sie LXC so, dass es die Brücke „br0 verwendet “, die wir zuvor erstellt haben. Wenn Sie bereits eine andere Brücke konfiguriert haben, können Sie diese in der folgenden Datei einstellen.

$ sudo nano /etc/lxc/default.conf
lxc.network.type =vethlxc.network.link =br0  # Durch Ihren Bridge-Namen ersetzen lxc.network.flags =uplxc.network.hwaddr =00:16:3e:xx:xx:xx
Starten Sie den Server neu, um die Netzwerkbrücke zu aktivieren

Erstellen des ersten Linux-Containers:

LXC stellt Ihnen fertige Templates zur einfachen Installation von Linux-Containern zur Verfügung. Vorlagen befinden sich normalerweise unter /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-slackware   lxc-sshd    lxc-ubuntu-cloudlxc-altlinux  lxc -busybox    lxc-cirros  lxc-download  lxc-gentoo  lxc-opensuse      lxc-plamo   lxc-sparclinux  lxc-ubuntu

Lassen Sie uns unseren ersten Ubuntu-Container erstellen, geben Sie den folgenden Befehl im Terminal aus

$ sudo lxc-create -n ubuntu_lxc -t ubuntu

Wo,

-n

-t

LXC beginnt mit der Erstellung des Containers „ubuntu_lxc “, würden Sie eine Ausgabe wie unten erhalten.

Beispielausgabe:

Überprüfe den Cache-Download in /var/cache/lxc/xenial/rootfs-amd64 ...Installation von Paketen in Vorlage:ssh,vim,language-pack-enDownload von ubuntu xenial minimal ...I:Abrufen von InReleaseI:Überprüfung der Release-SignaturI :Gültige Release-Signatur (Schlüssel-ID 790BC7277767219C42C86F933B4FE6ACC0B21F32)I:Pakete abrufenI:Pakete validierenI:Pakete abrufenI:Pakete validierenI:Abhängigkeiten erforderlicher Pakete auflösen...I:Abhängigkeiten von Basispaketen auflösen... . . . Vollständig herunterladenKopieren von /var/cache/lxc/xenial/rootfs-amd64 nach /var/lib/lxc/ubuntu_lxc/rootfs ...Kopieren von rootfs nach /var/lib/lxc/ubuntu_lxc/rootfs ...Generieren von Locales (dies kann dauern a while)...  en_IN.UTF-8... doneGeneration complete.Creating SSH2 RSA key; Dies kann einige Zeit dauern ... 2048 SHA256:2GY+Koavdyefbkzsjuemtv5pxumnVpiltXCazazryspja root@raj-virtual-machine (RSA) Erstellen von SSH2 DSA-Schlüssel; Dies kann einige Zeit dauern ... 1024 SHA256:+pxvakgv7kuds2Inf7akbyHme58oiopjftnfwj1fpk0 root@raj-virtual-machine (DSA) erstellen SSH2 ECDSA-Schlüssel; Dies kann einige Zeit dauern ... 256 SHA256:VH1U7WGEMPMEZTWVIDZT34FTSQ+OQUKBPJZAZJP1KHC WOOT@RAJ-VIRTUAL-MACHINE (ECDSA) Erstellen von SSH2 ED25519 Key; Dies kann einige Zeit dauern ... 256 SHA256:qzvwvynmjusdzhq5ij/r8uswbkrshug2vwcevmjgfzk root@raj-virtual-machine (ed25519) Invoke-rc.d:Richtlinien-Rc.d Degendution von Start. Die Ortszeit ist jetzt:      Thu Apr  7 17:53:19 UTC 2016.Weltzeit ist jetzt:  Thu Apr  7 17:53:19 UTC 2016.### Der Standardbenutzer ist „ubuntu“ mit dem Passwort „ubuntu“.  !# Verwenden Sie den 'sudo'-Befehl, um Aufgaben als root im Container auszuführen.##

Bitte notieren Sie sich die Zugangsdaten, diese benötigen Sie, um sich an den Containern anzumelden.

Wenn Sie einen Container basierend auf Ubuntu 14.04 erstellen möchten, verwenden Sie den folgenden Befehl.

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

-r

-a

Linux-Container starten:

Nachdem Sie die Container erstellt haben, starten Sie sie mit dem folgenden Befehl:-d, um Container im Hintergrund auszuführen.

$ sudo lxc-start -n ubuntu_lxc -d

Nehmen Sie nun mit dem folgenden Befehl eine Konsole des Containers.

$ sudo lxc-console -n ubuntu_lxc

Geben Sie den Benutzernamen (ubuntu) und das Passwort (ubuntu) ein, um sich anzumelden. Sie finden die Standard-Anmeldeinformationen am Ende der Ausgabe während der Erstellung eines Containers.

Beispielausgabe:

Verbunden mit tty 1 Geben Sie  ein, um die Konsole zu verlassen, , um Strg+a selbst einzugebenUbuntu Xenial Xerus (Entwicklungszweig) ubuntu_lxc pts/0ubuntu_lxc login:ubuntu Passwort: Willkommen bei Ubuntu Xenial Xerus (Entwicklungszweig) (GNU/Linux 4.4.0-15-generic x86_64) * Dokumentation:  https://help.ubuntu.com/ Die im Ubuntu-System enthaltenen Programme sind freie Software; die genauen Vertriebsbedingungen für jedes Programm sind in den einzelnen Dateien unter /usr/share/doc/*/copyright beschrieben. Für Ubuntu wird ABSOLUT KEINE GEWÄHRLEISTUNG gewährt, soweit dies nach geltendem Recht zulässig ist. Um einen Befehl als Administrator (Benutzer „root“) auszuführen, verwenden Sie „sudo ". Siehe "man sudo_root" für Details.ubuntu@ubuntu_lxc:~$

Sie können Ihre gesamte Arbeit in diesem Container wie auf einem Linux-Server ausführen.

Um die Container-Konsole zu verlassen, drücken Sie „Strg+a“ gefolgt von „q“ . Jetzt kehren Sie zum Terminal des Host-Computers zurück.

Wenn Sie sich erneut mit der Konsole des Containers verbinden möchten (der Container läuft noch), führen Sie den folgenden Befehl aus.

$ sudo lxc-console -n ubuntu_lxc

Arbeiten mit Linux-Containern:

Verwenden Sie den folgenden Befehl, um die verfügbaren Container auf dem Hostcomputer aufzulisten.

$ sudo lxc-lsubuntu_lxc

Verwenden Sie den folgenden Befehl, um die Container aufzulisten, die derzeit auf dem Hostcomputer ausgeführt werden.

$ sudo lxc-ls --activeubuntu_lxc

Sie könnten die gleiche Ausgabe für beide Befehle sehen, da ich nur einen Container habe, der derzeit ausgeführt wird.

Sie können den folgenden Befehl verwenden, um die Container mit detaillierten Informationen aufzulisten.

$ sudo lxc-ls  -fNAME       STATUS   AUTOSTART GRUPPEN IPV4          IPV6ubuntu_lxc LÄUFT 0         -      192.168.12.18 -

Geben Sie den folgenden Befehl ein, um die Details des ausgeführten Containers abzurufen.

$ sudo lxc-info -n ubuntu_lxcName:           ubuntu_lxcState:          RUNNINGPID:            2933IP:             192.168.12.18 CPU-Nutzung:        0,90 Sekunden BlkIO-Nutzung:      20,96 MiBMemory-Nutzung:     31,67 MiBKMem-Nutzung:       0 BytesLink:           vethFLQOYF TX Bytes:      3,21 KiB RX-Bytes:      6,41 KiB Gesamtbytes:       

Sie können die IP-Adresse verwenden, um sich mit den Containern zu verbinden.

Sie können die Ausführung von Containern mit dem Befehl „lxc-stop“ stoppen, verwenden Sie den folgenden Befehl, um „ubuntu_lxc“ zu stoppen.

$ sudo lxc-stop -n ubuntu_lxc

Container klonen:

LXC bietet eine Funktion zum Klonen eines Containers aus dem vorhandenen Container. Führen Sie den folgenden Befehl aus, um einen vorhandenen „ubuntu_lxc“-Container in einen neuen Container „ubuntu_lxc_clone“ zu klonen.

Hinweis:Sie müssen einen Container stoppen, bevor Sie den Klonvorgang starten.

$ sudo lxc-copy -n ubuntu_lxc -N ubuntu_lxc_clone

Überprüfen Sie, ob ein Container erfolgreich erstellt wurde.

$ sudo lxc-lsubuntu_lxc       ubuntu_lxc_clone

Sie können den geklonten Container starten und mit der Arbeit daran beginnen.

$ sudo lxc-start -n ubuntu_lxc_clone
$ sudo lxc-console -n ubuntu_lxc_cloneConnected to tty 1 Geben Sie  ein, um die Konsole zu verlassen, , um Strg+a selbst einzugebenUbuntu Xenial Xerus (Entwicklungszweig) ubuntu_lxc_clone pts/0ubuntu_lxc_clone login:ubuntuPassword:Letzte Anmeldung:Samstag, 9. April, 16:15:22 UTC 2016 von 192.168.12.1 auf pts/4 /help.ubuntu.com/Um einen Befehl als Administrator (Benutzer „root“) auszuführen, verwenden Sie „sudo “. Siehe „man sudo_root“ für Details.ubuntu@ubuntu_lxc_clone:~$

Schalten Sie den Container über die LXC-Konsole aus.

ubuntu@ubuntu_lxc_clone:~$ sudo poweroff

Schnappschuss erstellen:

LXC bietet auch eine andere Funktion namens Snapshot an, befolgen Sie die nachstehenden Schritte, um den Snapshot durchzuführen.

Hinweis:Stellen Sie vor dem Erstellen eines Snapshots sicher, dass der Container nicht ausgeführt wird. Stoppen Sie einen laufenden Container mit dem folgenden Befehl.

$ sudo lxc-stop -n ubuntu_lxc_clone

Machen wir für eine Demo einen Schnappschuss von ubuntu_lxc_clone.

$ sudo lxc-snapshot -n ubuntu_lxc_clone

Beispielausgabe:

lxc-snapshot:lxccontainer.c:do_lxcapi_snapshot:3371 Snapshot des verzeichnisgestützten Containers angefordert.lxc-snapshot:lxccontainer.c:do_lxcapi_snapshot:3372 Erstellung eines Copy-Clone. Wenn Sie Snapshots wünschen, erstellen Sie bitte zuerst einen aufs- oder overlayfs-Klon, lxc-snapshot:lxccontainer.c:do_lxcapi_snapshot:3373, Snapshot thatlxc-snapshot:lxccontainer.c:do_lxcapi_snapshot:3374 und lassen Sie den ursprünglichen Container unverändert.

Führen Sie den folgenden Befehl aus, um zu erfahren, wo der Snapshot gespeichert wird.

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

In Ubuntu werden LXC-Snapshots in „/var/lib/lxc//snaps gespeichert ”

Snapshot wird wiederhergestellt:

Verwenden Sie den folgenden Befehl, um einen Container aus dem zuvor erstellten Snapshot wiederherzustellen.

$ sudo lxc-snapshot -r snap0 -n ubuntu_lxc_clone

Container zerstören:

Um einen Container zu entfernen, verwenden Sie den folgenden Befehl.

Hinweis:Sie müssen die Snapshots entfernen, bevor Sie die Container zerstören. ($ sudo lxc-snapshot -d snap0  -n ubuntu_lxc_clone)

$ sudo lxc-destroy -n ubuntu_lxc_clone

Ausführen eines CentOS-Containers auf Ubuntu 16.04:

Installieren Sie das „yum“-Paket für Redhat-basierte Container.

$ sudo apt-get install yum

Erstellen Sie mit dem folgenden Befehl einen CentOS 7-Container.

$ sudo lxc-create -n centos_lxc -t centos -- -R 7 -a x86_64Host CPE ID from /etc/os-release:Checking cache download in /var/cache/lxc/centos/x86_64/7/rootfs ... CentOS minimal herunterladen ... Basis | 3.6 KB 00:00BASE/primär_db | 5,3 MB 12:26Updates | 3.4 KB 00:00UPDATES/primär_db | 3,9 MB     02:17 Installationsprozess wird eingerichtet Abhängigkeiten auflösen--> Transaktionsprüfung wird ausgeführt---> Paket chkconfig.x86_64 0:1.3.61-5.el7 wird installiert Abgeschlossen! RPMDB-Speicherort behoben ... Download abgeschlossen. Kopieren /var/ cache/lxc/centos/x86_64/7/rootfs nach /var/lib/lxc/centos_lxc/rootfs ... Kopieren von rootfs nach /var/lib/lxc/centos_lxc/rootfs ...sed:kann /var/ nicht lesen lib/lxc/centos_lxc/rootfs/etc/init/tty.conf:Keine solche Datei oder kein solches Verzeichnis Speichern des Root-Passworts in „/var/lib/lxc/centos_lxc/tmp_root_pass“ Ablaufendes Passwort für Benutzer root.passwd:Erfolgreich:Kann nicht lesen /var/lib/lxc/centos_lxc/rootfs/etc/rc.sysinit:Keine solche Datei oder Verzeichnis:Kann /var/lib/lxc/centos_lxc/rootfs/etc/rc.d/rc.sysinit nicht lesen:Keine solche file or directoryContainer rootfs and config wurden erstellt. Bearbeiten Sie die Konfigurationsdatei, um die Netzwerkeinrichtung zu prüfen/aktivieren. Das temporäre Root-Passwort wird gespeichert in:        '/var/lib/lxc/centos_lxc/tmp_root_pass' Das Root-Passwort ist als abgelaufen eingerichtet und muss bei der ersten Anmeldung geändert werden, was Sie so bald wie möglich tun sollten. Wenn Sie das Root-Passwort verlieren oder es ändern möchten, ohne den Container zu starten, können Sie es vom Host aus ändern, indem Sie den folgenden Befehl ausführen (der auch das Expired-Flag zurücksetzt):        chroot /var/lib/lxc/centos_lxc/rootfs passwd  

Sie können die Standardanmeldeinformationen am Ende der Ausgabe abrufen.

Starten und nehmen Sie eine Konsole des Ubuntu-Containers mit dem folgenden Befehl. Sie müssen das Root-Passwort bei der ersten Anmeldung ändern.

$ sudo lxc-start -n centos_lxc -d$ sudo lxc-console -n centos_lxcConnected to tty 1 Geben Sie  ein, um die Konsole zu verlassen, , um Strg+a selbst einzugeben, CentOS Linux 7 (Core)Kernel 4.4.0-15-generisch auf einem x86_64centos_lxc-Login:root Passwort: Sie müssen Ihr Passwort sofort ändern (durch Root erzwungen) Passwort für root ändern. (aktuelles) UNIX-Passwort: Neues Passwort: Neues Passwort wiederholen: [root@centos_lxc ~]# 

Das ist alles! danke fürs Lesen. Seien Sie sozial, teilen Sie dies mit Ihren Freunden.


Ubuntu
  1. Einrichtung des WebDAV-Servers unter Ubuntu Linux

  2. Ersteinrichtung des Servers mit Ubuntu 14.04

  3. So installieren Sie WordPress mit Docker auf Ubuntu

  4. So richten Sie Android SDK 4.0.3 mit NetBeans IDE 7.1 unter Linux Mint 12 / Ubuntu 11.10 ein

  5. So richten Sie IP-Failover mit KeepAlived unter Ubuntu und Debian ein

So treten Sie mit Mixxx unter Ubuntu Linux als DJ auf

So richten Sie GlassFish 4.1 mit JAVA 8 in Ubuntu 15.04 ein

So verbinden Sie Kindle Fire HD mit Ubuntu Linux

Linux-Container mit LXC auf CentOS 7 / RHEL 7 einrichten

So richten Sie WordPress auf Ubuntu Server mit Apache ein

So konfigurieren Sie die Firewall mit UFW unter Ubuntu Linux