GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Configura il contenitore Linux con LXC su Ubuntu 16.04

Linux container (LXC), è un software di virtualizzazione a livello di sistema operativo leggero e open source che ci aiuta a eseguire più sistemi Linux isolati (container) su un singolo host Linux. LXC fornisce un ambiente Linux simile a un'installazione Linux standard ma senza la necessità di un kernel separato. LXC non sostituisce i software di virtualizzazione standard come VMware, VirtualBox e KVM, ma è abbastanza buono da fornire un ambiente isolato dotato di CPU, memoria, I/O a blocchi e rete propri.

LXC è rilasciato con licenza GNU LGPLv2.1+. Il progetto LXC è sponsorizzato da Canonical Ltd, che è dietro il sistema operativo Ubuntu.

In questa guida, ti mostrerò come installare LXC su Ubuntu 16.04 e creare e gestire LXC usando la riga di comando oltre che usando LXC Web Portal .

Questo tutorial dovrebbe funzionare anche su versioni precedenti di Ubuntu, come Ubuntu 14.04 / 14.10 / 15.04 / 15.10

Prerequisiti:

I container LXC utilizzano la rete bridge per avere accesso a/da una rete esterna, prima di avviare il container dobbiamo creare un bridge di rete su Ubuntu.

Segui i passaggi per configurare il bridging su Ubuntu; Sto creando un'interfaccia con bridge "br0 ” utilizzando la scheda ethernet “ens33

file $ sudo nano /etc/network/interfaces# interfaces(5) utilizzato da ifup(8) e ifdown(8)auto loiface lo inet loopback##Bridge Name ### auto br0### Informazioni sul ponte iface br0 inet staticbridge_ports ens33bridge_stp offbridge_fd 9### Bridge IP ### indirizzo 192.168.12.15netmask 255.255.255.0network 192.168.12.0broadcast 192.168.12.255gateway 192.168.12.2dns-nameserver 8.8.8.8

Installa LXC su Ubuntu 16.04:

Ora è il momento di installare LXC. Installa LXC e altri pacchetti affinché i container funzionino correttamente.

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

Emetti il ​​comando seguente per verificare che tutto sia a posto per eseguire i container.

$ sudo lxc-checkconfig Configurazione del kernel non trovata in /proc/config.gz; ricerca...Configurazione del kernel trovata in /boot/config-4.4.0-15-generic--- Spazi dei nomi ---Spazi dei nomi:enabledUtsSpazio dei nomi:enabledSpazio dei nomi Ipc:enabledSpazio dei nomi Pid:enabledSpazio dei nomi utente:enabledSpazio dei nomi di rete:enabledIstanze multiple /dev/pts :abilitato--- Gruppi di controllo ---Cgroup:abilitatoCgroup clone_children flag:abilitatoCgruppo dispositivo:abilitatoCgroup sched:abilitatoCaccount cpu gruppo:abilitatoCgroup memory controller:abilitatoCgroup cpuset:abilitato--- Misc ---Dispositivo coppia Veth:abilitatoMacvlan:abilitatoVlan:abilitatoBridges :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 (per l'uso con lxcfs):attivato --- Checkpoint / ripristino --- checkpoint di ripristino:enabledCONFIG_FHANDLE:enabledCONFIG_EVENTFD:enabledCONFIG_EPOLL:enabledCONFIG_UNIX_DIAG:enabledCONFIG_INET_DIAG:enabledCONFIG_PACKET_DIAG:enabledCONFIG_NETLINK_DIAG:it Capacità del file abilitato:abilitatoNota:prima di avviare un nuovo kernel, puoi verificarne la configurazioneutilizzo:CONFIG=/path/to/config /usr/bin/lxc-checkconfig

Configurazione della rete LXC:

Disabilita il bridge predefinito "lxcbr0 ",  è stato creato come parte dell'installazione di LXC.

$ sudo nano /etc/default/lxc-net

Imposta "USE_LXC_BRIDGE ” a “falso “.

USE_LXC_BRIDGE="false"

Configura LXC per utilizzare il bridge "br0 “, che abbiamo creato in precedenza. Se hai già configurato un altro bridge, puoi impostarlo nel file sottostante.

$ sudo nano /etc/lxc/default.conf
lxc.network.type =vethlxc.network.link =br0  # Sostituisci con il nome del bridge lxc.network.flags =uplxc.network.hwaddr =00:16:3e:xx:xx:xx
Riavvia il server per abilitare il Bridge di rete

Creazione del primo container Linux:

LXC ti fornisce i modelli già pronti per una facile installazione dei container Linux. I modelli si trovano in genere in /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

Creiamo il nostro primo container Ubuntu, immettiamo il seguente comando nel terminale

$ sudo lxc-create -n ubuntu_lxc -t ubuntu

Dove,

-n

-t

LXC inizierà a creare il contenitore "ubuntu_lxc ", otterresti un output simile a quello di seguito.

Risultato di esempio:

Verifica del download della cache in /var/cache/lxc/xenial/rootfs-amd64 ...Installazione dei pacchetti nel modello:ssh,vim,language-pack-enDownload di ubuntu xenial minimal ...I:Recupero di InReleaseI:Verifica della firma di rilascioI :Firma di rilascio valida (ID chiave 790BC7277767219C42C86F933B4FE6ACC0B21F32)I:Recupero dei pacchettiI:Convalida dei pacchettiI:Recupero dei pacchettiI:Convalida dei pacchettiI:Risoluzione delle dipendenze dei pacchetti richiesti...I:Risoluzione delle dipendenze dei pacchetti di base... . . . Scarica completeCopy /var/cache/lxc/xenial/rootfs-amd64 in /var/lib/lxc/ubuntu_lxc/rootfs ...Copia di rootfs in /var/lib/lxc/ubuntu_lxc/rootfs ...Generazione delle impostazioni locali (potrebbe richiedere un po')...  it_IN.UTF-8... doneGeneration complete.Creating SSH2 RSA key; Questo potrebbe richiedere un po 'di tempo ... 2048 Sha256:2GY+KOAVDYEFBKZSJUEMTV5PXUMNVPILTXCAZRYSPJA ROOT@raj-virtual-machine (RSA) creando chiave SSH2 DSA; Questo potrebbe richiedere un po 'di tempo ... 1024 sha256:+pxvakgv7kuds2inf7akbyhme58oiopjftnfwj1fpk0 root@raj-virtual-machine (DSA) creando chiave SSH2 ECDSA; Questo potrebbe richiedere un po 'di tempo ... 256 Sha256:VH1U7WGEMPMEZTWVIDZT34ftSQ+OqukBPJZAZJP1KHC root@raj-virtual-machine (ECDSA) Creazione di SSH2 ED25519 Key; Questo può richiedere un po 'di tempo ... 256 sha256:qzvwvynmjusdzhq5ij/r8uswbkrshug2vwcevmjgfzk root@raj-virtual-machine (eD25519) invoke-rc.d:politiche-rc.d Execution di start.Current Deafault Time Fomone:' UTC ' L'ora locale è ora:      Thu Apr  7 17:53:19 UTC 2016. L'ora universale è ora:  Thu Apr  7 17:53:19 UTC 2016.### L'utente predefinito è "ubuntu" con password "ubuntu"  !# Usa il comando 'sudo' per eseguire attività come root nel contenitore.##

Prendi nota dei dettagli di accesso, avresti bisogno di queste informazioni per accedere ai contenitori.

Se vuoi creare un contenitore basato su Ubuntu 14.04, usa il seguente comando.

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

-r

-a

Avvio di container Linux:

Dopo aver creato i contenitori, avvialo utilizzando il comando seguente, -d per eseguire i contenitori in background.

$ sudo lxc-start -n ubuntu_lxc -d

Ora prendi una console del container usando il seguente comando.

$ sudo lxc-console -n ubuntu_lxc

Inserisci il nome utente (ubuntu) e la password (ubuntu) per accedere. Puoi trovare la credenziale predefinita alla fine dell'output durante la creazione di un container.

Risultato di esempio:

Connesso a tty 1Digitare  per uscire dalla console,  per accedere a Ctrl+a stessoUbuntu Xenial Xerus (ramo di sviluppo) ubuntu_lxc pts/0ubuntu_lxc login:ubuntu Password: Benvenuto in Ubuntu Xenial Xerus (ramo di sviluppo) (GNU/Linux 4.4.0-15-generic x86_64) * Documentazione:  https://help.ubuntu.com/I programmi inclusi nel sistema Ubuntu sono software gratuiti; i termini esatti di distribuzione per ogni programma sono descritti nei singoli file in /usr/share/doc/*/copyright. Ubuntu viene fornito ASSOLUTAMENTE NESSUNA GARANZIA, nella misura consentita dalla legge applicabile. Per eseguire un comando come amministratore (utente "root"), utilizzare "sudo ".Vedi "man sudo_root" per i dettagli.ubuntu@ubuntu_lxc:~$

Puoi eseguire tutto il tuo lavoro in questo contenitore come su un server Linux.

Per uscire dalla console del contenitore, premi "Ctrl+a" seguito da "q" . Ora verrai riportato al terminale del computer host.

Se vuoi connetterti di nuovo alla console del container (il container è ancora in esecuzione), esegui il comando seguente.

$ sudo lxc-console -n ubuntu_lxc

Lavorare con i container Linux:

Per elencare i contenitori disponibili sulla macchina host, utilizzare il comando seguente.

$ sudo lxc-lsubuntu_lxc

Utilizzare il comando seguente per elencare i contenitori attualmente in esecuzione sul computer host.

$ sudo lxc-ls --activeubuntu_lxc

Potresti vedere lo stesso output per entrambi i comandi poiché ho un solo contenitore attualmente in esecuzione.

È possibile utilizzare il comando seguente per elencare i contenitori con informazioni dettagliate.

$ sudo lxc-ls  -fNAME       STATE   AUTOSTART GROUPS IPV4          IPV6ubuntu_lxc RUNNING 0         -      192.168.12.18 -

Per ottenere i dettagli del contenitore in esecuzione, immetti il ​​seguente comando.

$ sudo lxc-info -n ubuntu_lxcName:           ubuntu_lxcState:          RUNNINGPID:           2933IP:             192.168.12.18 Utilizzo CPU:        0.90 secondi Utilizzo BlkIO:      20.96 MiB Utilizzo memoria:     31.67 Utilizzo MiBKMem:       0 bytesLink:           vethFLQOYF Byte TX:      3.21 KiB Byte RX:      6.41 KiB 9.2 Ki pre. 

Puoi utilizzare l'indirizzo IP per connetterti ai container.

Puoi interrompere l'esecuzione dei contenitori utilizzando il comando "lxc-stop", utilizzare il comando seguente per interrompere "ubuntu_lxc".

$ sudo lxc-stop -n ubuntu_lxc

Contenitori di clonazione:

LXC offre una funzionalità di clonazione di un contenitore dal contenitore esistente, esegui il comando seguente per clonare un contenitore "ubuntu_lxc" esistente in un nuovo contenitore "ubuntu_lxc_clone".

Nota:devi fermare un container prima di avviare il clone.

$ sudo lxc-copy -n ubuntu_lxc -N ubuntu_lxc_clone

Verifica se un container è stato creato correttamente.

$ sudo lxc-lsubuntu_lxc       ubuntu_lxc_clone

Puoi avviare il contenitore clonato e iniziare a lavorarci.

$ sudo lxc-start -n ubuntu_lxc_clone
$ sudo lxc-console -n ubuntu_lxc_cloneConnesso a tty 1Digitare  per uscire dalla console,  per accedere a Ctrl+a stessoUbuntu Xenial Xerus (ramo di sviluppo) ubuntu_lxc_clone pts/0ubuntu_lxc_clone login:ubuntuPassword:Ultimo accesso:sabato 9 aprile 16:15:22 UTC 2016 da 192.168.12.1 su pts/4Benvenuto in Ubuntu Xenial Xerus (ramo di sviluppo) (GNU/Linux 4.4.0-15-generic x86_64) * Documentazione:  https:/ /help.ubuntu.com/Per eseguire un comando come amministratore (utente "root"), usa "sudo ".Vedi "man sudo_root" per i dettagli.ubuntu@ubuntu_lxc_clone:~$

Spegni il container dalla console LXC.

ubuntu@ubuntu_lxc_clone:~$ sudo poweroff

Scattare un'istantanea:

LXC offre anche un'altra funzione chiamata snapshot, segui i passaggi seguenti per eseguire lo snapshot.

Nota:prima di acquisire uno snapshot, assicurati che il contenitore non sia in esecuzione. Arresta un container in esecuzione utilizzando il comando seguente.

$ sudo lxc-stop -n ubuntu_lxc_clone

Per una demo, prendiamo un'istantanea di ubuntu_lxc_clone.

$ sudo lxc-snapshot -n ubuntu_lxc_clone

Esempio di output:

lxc-snapshot:lxccontainer.c:do_lxcapi_snapshot:3371 Istantanea del contenitore supportato da directory richiesta.lxc-snapshot:lxccontainer.c:do_lxcapi_snapshot:3372 Creazione di una copia-clone. Se vuoi snapshot, quindilxc-snapshot:lxccontainer.c:do_lxcapi_snapshot:3373 crea prima un clone aufs o overlayfs, snapshot thatlxc-snapshot:lxccontainer.c:do_lxcapi_snapshot:3374 e mantieni il contenitore originale intatto.

Per sapere dove viene salvata l'istantanea, esegui il comando seguente.

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

In Ubuntu, gli snapshot LXC sono archiviati in "/var/lib/lxc//snaps

Ripristino dell'istantanea:

Per ripristinare un container dall'istantanea che abbiamo preso in precedenza, usa il comando seguente.

$ sudo lxc-snapshot -r snap0 -n ubuntu_lxc_clone

Distruggere i contenitori:

Per rimuovere un contenitore, usa il seguente comando.

Nota:devi rimuovere le istantanee prima di distruggere i contenitori. ($ sudo lxc-snapshot -d snap0  -n ubuntu_lxc_clone)

$ sudo lxc-destroy -n ubuntu_lxc_clone

Eseguire un contenitore CentOS su Ubuntu 16.04:

Installa il pacchetto "yum" per i contenitori basati su Redhat.

$ sudo apt-get install yum

Crea un contenitore CentOS 7 usando il comando seguente.

$ sudo lxc-create -n centos_lxc -t centos -- -R 7 -a x86_64ID CPE host da /etc/os-release:Controllo del download della cache in /var/cache/lxc/centos/x86_64/7/rootfs ... Download Centros Minimal ... Base | 3,6 kb 00:00base/primario_db | 5.3 MB 12:26updates | 3.4 kb 00:00updates/primary_db | 3.9 MB     02:17Configurazione del processo di installazioneRisoluzione delle dipendenze--> Esecuzione del controllo della transazione---> Il pacchetto chkconfig.x86_64 0:1.3.61-5.el7 verrà installato Completato!Correzione della posizione di rpmdb ...Download completo.Copia /var/ cache/lxc/centos/x86_64/7/rootfs in /var/lib/lxc/centos_lxc/rootfs ...Copiando rootfs in /var/lib/lxc/centos_lxc/rootfs ...sed:impossibile leggere /var/ lib/lxc/centos_lxc/rootfs/etc/init/tty.conf:nessun file o directory di questo tipo Memorizzazione della password di root in '/var/lib/lxc/centos_lxc/tmp_root_pass'Password in scadenza per l'utente root.passwd:Operazione riuscita:impossibile leggere /var/lib/lxc/centos_lxc/rootfs/etc/rc.sysinit:nessun file o directory di questo tipo:impossibile leggere /var/lib/lxc/centos_lxc/rootfs/etc/rc.d/rc.sysinit:no tale file o directoryContainer rootfs e config sono stati creati.Modifica il file di configurazione per verificare/abilitare la configurazione della rete.La password di root temporanea è archiviata in:        '/var/lib/lxc/centos_lxc/tmp_root_pass' La password di root è impostata come scaduta e richiederà che venga modificata al primo accesso, cosa che dovresti fare il prima possibile. Se perdi la password di root o desideri cambiarla senza avviare il container, puoi cambiarla dall'host eseguendo il seguente comando (che ripristinerà anche il flag scaduto):        chroot /var/lib/lxc/centos_lxc/rootfs passwd  

Puoi ottenere le credenziali predefinite alla fine dell'output.

Avvia e prendi una console del contenitore Ubuntu con il seguente comando. Devi cambiare la password di root al primo accesso.

$ sudo lxc-start -n centos_lxc -d$ sudo lxc-console -n centos_lxcConnesso a tty 1Digitare  per uscire dalla console,  per entrare Ctrl+a stessoCentOS Linux 7 (Core)Kernel 4.4.0-15-generico su un accesso x86_64centos_lxc:root Password: Ti viene richiesto di cambiare immediatamente la tua password (applicazione root) Modifica password per root. Password UNIX (attuale): Nuova password: Ridigita la nuova password: [root@centos_lxc ~]# 

È tutto! grazie per aver letto. Sii social, condividi questo con i tuoi amici.


Ubuntu
  1. Configurazione del server WebDAV su Ubuntu Linux

  2. Configurazione iniziale del server con Ubuntu 14.04

  3. Come installare WordPress con Docker su Ubuntu

  4. Come configurare Android SDK 4.0.3 con NetBeans IDE 7.1 su Linux Mint 12 / Ubuntu 11.10

  5. Configura un hotspot Wi-Fi in Linux Mint/Ubuntu

Come esibirsi come DJ su Ubuntu Linux con Mixxx

Come configurare GlassFish 4.1 con JAVA 8 in Ubuntu 15.04

Come collegare Kindle Fire HD con Ubuntu Linux

Configura il contenitore Linux con LXC su CentOS 7 / RHEL 7

Come configurare WordPress su Ubuntu Server con Apache

Come configurare il firewall con UFW su Ubuntu Linux