Was ich so treibe...

Uli's IT-Blog - Konzeption, Entwicklung, Betrieb

LXC

LXC

Installation

sudo apt-get install lxc

Container-Partition /lxc

Dieser Teil ist optional. Man kann ihn auch einfach weglassen, dann
werden die LXC-Container eben unterhalb von /var angelegt. Das setzt
dann natürlich voraus, dass dort noch genügend freier Platz vorhanden ist
- etwa 10GB sollten für den Anfang reichen. Prüfen kann man das mit
df -h /var.

Die nachfolgende Beschreibung geht davon aus, dass das System mit LVM
partitioniert ist und dass eine VolumeGroup namens “datavg” vorhanden
ist.

Partition anlegen

sudo lvcreate -n lxclv -L10G datavg
sudo mkfs.btrfs /dev/datavg/lxclv

Partition einbinden

sudo -s
mkdir /lxc
echo "/dev/datavg/lxclv /lxc btrfs defaults 0 3" >>/etc/fstab
mount /lxc
rmdir /var/lib/lxc
ln -s /lxc/lib /var/lib/lxc
rm -rf /var/cache/lxc
ln -s /lxc/cache /var/cache/lxc

Erstellen von Containern

12.04, 64bit

64-bit Container können nur erstellt werden, wenn das Basissystem auch ein 64-bit-System ist!

sudo lxc-create -t ubuntu -n ubuntu1204-64 -- -r precise -a amd64

12.04, 32bit

sudo lxc-create -t ubuntu -n ubuntu1204-32 -- -r precise -a i386
uli@uli-hp-ssd:~/Downloads/virtualbox$ sudo lxc-create -t ubuntu -n ubuntu1204-32 -- -r precise -a i386
[sudo] password for uli: 

No config file specified, using the default config
debootstrap ist /usr/sbin/debootstrap
Checking cache download in /var/cache/lxc/precise/rootfs-i386 ... 
Copy /var/cache/lxc/precise/rootfs-i386 to /var/lib/lxc/ubuntu1204-32/rootfs ... 
Copying rootfs to /var/lib/lxc/ubuntu1204-32/rootfs ...

##
# The default user is 'ubuntu' with password 'ubuntu'!
# Use the 'sudo' command to run tasks as root in the container.
##

'ubuntu' template installed
'ubuntu1204-32' created

13.04, 64bit

sudo lxc-create -t ubuntu -n ubuntu1304-64 -- -r raring -a amd64

13.04, 32bit

sudo lxc-create -t ubuntu -n ubuntu1304-32 -- -r raring -a i386

10.04, 32bit

sudo lxc-create -t ubuntu -n ubuntu1204-32 -- -r lucid -a i386

Arbeit mit Containern

  • Anmelden
    • Benutzer: “ubuntu”
    • Kennwort: “ubuntu”
  • Netzwerk
    • IP-Adressen: Aus dem Adressbereich 10.0.3/24
    • NAT: Funktioniert – ping google.com
    • SSH vom Host in den Container: Funktioniert – ssh ubuntu10.0.3.250@

Anpassung der Container

Verwenden des Apt-Cache-Ng vom Host-System

Erstellen von /etc/apt/apt.conf.d/01proxy:

Acquire::http::Proxy "http://10.0.3.1:3142";

Installation von JOE/JMACS

sudo apt-get install joe

Sichern und Rückspielen von Containern

Sichern

cd /lxc
sudo tar -cvjpf /backups/lxc/20121119.tar.bz2 .

Rückspielen

cd /lxc
sudo tar -xvjpf /backups/lxc/20121119.tar.bz2

Probleme

Offene Punkte

Wie sorgt man dafür, dass ein Container nur über ein Host-Only-Netzwerk erreichbar ist?

Erledigte Punkte

Verwendung des Apt-Cacher-Ng durch einen Container

… geht wie üblich durch /etc/apt/apt.conf.d/01proxy innerhalb des Containers

Wie übernimmt man einen Container auf ein anderes System?

… durch Sichern und Rückspielen.

Links

  • Ubuntu 12.04 Server Guide: https://help.ubuntu.com/12.04/serverguide/lxc.html

Comments