Wissensdatenbank
Buehl, Kevin
05 Februar 2017
11 April 2018
2.766

Wissensdatenbank

Linux Containers LXC unter Debian 8 Jessie installieren

Installation


Installieren Sie die benötigten Pakete mit
apt install lxc yum ubuntu-archive-keyring curl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
debootstrap dh-python libapparmor1 libmpdec2 libpython3-stdlib libpython3.4-minimal
libpython3.4-stdlib libseccomp2 python3 python3-minimal python3.4 python3.4-minimal
Vorgeschlagene Pakete:
lua5.2 python3-doc python3-tk python3-venv python3.4-venv python3.4-doc binutils
binfmt-support
Die folgenden NEUEN Pakete werden installiert:
debootstrap dh-python libapparmor1 libmpdec2 libpython3-stdlib libpython3.4-minimal
libpython3.4-stdlib libseccomp2 lxc python3 python3-minimal python3.4 python3.4-minimal
0 aktualisiert, 13 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 5.432 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 21,9 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n]
Holen: 1 http://debian.mirrors.ovh.net/debian/ jessie/main libmpdec2 amd64 2.4.1-1 [85,7 kB]
Es wurden 5.432 kB in 1 s geholt (5.151 kB/s).
Vormals nicht ausgewähltes Paket libmpdec2:amd64 wird gewählt.
(Lese Datenbank ... 22737 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../libmpdec2_2.4.1-1_amd64.deb ...
Entpacken von libmpdec2:amd64 (2.4.1-1) ...
Trigger für man-db (2.7.0.2-5) werden verarbeitet ...
python3-minimal (3.4.2-2) wird eingerichtet ...
running python rtupdate hooks for python3.4...
Trigger für systemd (215-17+deb8u4) werden verarbeitet ...

Passen Sie die Paketquellen an um lxcfs installieren zu können:
echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/lxc.list
apt update

LXCFS ist Sinnvoll, da im Container dann die CPU und RAM Leistung des Containers und nicht des Hosts angezeigt wird.
apt install lxcfs
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden NEUEN Pakete werden installiert:
lxcfs
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 38,1 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 193 kB Plattenplatz zusätzlich benutzt.
Holen: 1 http://debian.mirrors.ovh.net/debian/ jessie-backports/main lxcfs amd64 2.0.0-3~bpo8+1 [38,1 kB]
Es wurden 38,1 kB in 0 s geholt (95,5 kB/s).
Vormals nicht ausgewähltes Paket lxcfs wird gewählt.
(Lese Datenbank ... 24117 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../lxcfs_2.0.0-3~bpo8+1_amd64.deb ...
Entpacken von lxcfs (2.0.0-3~bpo8+1) ...
Trigger für systemd (215-17+deb8u4) werden verarbeitet ...
lxcfs (2.0.0-3~bpo8+1) wird eingerichtet ...
Trigger für libc-bin (2.19-18+deb8u4) werden verarbeitet ...


Optional können Sie noch folgende Pakete installieren
apt install bridge-utils debootstrap xz-utils


Prüfen Sie die Konfiguration des Systems mit folgendem Befehl:
lxc-checkconfig
Kernel configuration not found at /proc/config.gz; searching...
Kernel configuration found at /boot/config-3.16.0-4-amd64
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
Network namespace: enabled
Multiple /dev/pts instances: enabled

--- Control groups ---
Cgroup: enabled
Cgroup clone_children flag: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: enabled
Cgroup cpuset: enabled

--- Misc ---
Veth pair device: enabled
Macvlan: enabled
Vlan: enabled
File capabilities: enabled

Note : Before booting a new kernel, you can check its configuration
usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig


Konfiguration


Grub


nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet cgroup_enable=memory swapaccount=1"
update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.16.0-4-amd64
Found initrd image: /boot/initrd.img-3.16.0-4-amd64
done
Sie sollten nun Ihr System neu starten um die Änderungen zu übernehmen:
reboot

Netzwerk


Server


nano /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
address 48.42.48.42
netmask 255.255.255.0
network 48.42.0.0
broadcast 48.42.0.255
gateway 48.42.0.254
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
iface br0 inet6 static
address 2001:41d0:d:d68::
netmask 64
post-up /sbin/ip -family inet6 route add 2001:41d0:d:dff:ff:ff:ff:ff dev br0
post-up /sbin/ip -family inet6 route add default via 2001:41d0:d:dff:ff:ff:ff:ff
pre-down /sbin/ip -family inet6 route del default via 2001:41d0:d:dff:ff:ff:ff:ff
pre-down /sbin/ip -family inet6 route del 2001:41d0:d:dff:ff:ff:ff:ff dev br0

Optional


Damit das 4b42 Webinterface auf die Templates zugreifen kann muss folgender Befehl ausgeführt werden:
mkdir -p /var/lib/vz/template/cache/

Proxy NDP
nano /etc/sysctl.conf
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.proxy_ndp=1

Container


/etc/lxc/default.conf
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br12
lxc.network.hwaddr = 00:4B:42:00:xx:xx



Verwaltung


Container erstellen


lxc-create -n cluster -t debian -- -r jessie
debootstrap ist /usr/sbin/debootstrap
Checking cache download in /var/cache/lxc/debian/rootfs-jessie-amd64 ...
Copying rootfs to /var/lib/lxc/cluster/rootfs...Generating locales (this might take a while)...
de_CH.UTF-8... done
Generation complete.
insserv: warning: current start runlevel(s) (empty) of script `checkroot.sh' overrides LSB defaults (S).
insserv: warning: current stop runlevel(s) (S) of script `checkroot.sh' overrides LSB defaults (empty).
insserv: warning: current start runlevel(s) (empty) of script `checkroot.sh' overrides LSB defaults (S).
update-rc.d: error: umountfs Default-Start contains no runlevels, aborting.
insserv: warning: current start runlevel(s) (empty) of script `hwclock.sh' overrides LSB defaults (S).
insserv: warning: current stop runlevel(s) (0 6 S) of script `hwclock.sh' overrides LSB defaults (0 6).
update-rc.d: error: cannot find a LSB script for hwclockfirst.sh
Creating SSH2 RSA key; this may take some time ...
2048 55:96:c1:9b:ff:75:42:5e:75:74:25:14:76:f3:a5:26 /etc/ssh/ssh_host_rsa_key.pub (RSA)
Creating SSH2 DSA key; this may take some time ...
1024 47:66:a6:6d:fc:b1:87:5e:c6:d0:f8:2a:7b:51:e1:81 /etc/ssh/ssh_host_dsa_key.pub (DSA)
Creating SSH2 ECDSA key; this may take some time ...
256 8d:33:40:fc:d5:80:64:0b:2f:d0:17:10:9f:46:8c:83 /etc/ssh/ssh_host_ecdsa_key.pub (ECDSA)
Creating SSH2 ED25519 key; this may take some time ...
256 b9:83:33:f8:13:51:7c:eb:25:2c:70:9f:0c:14:ba:9b /etc/ssh/ssh_host_ed25519_key.pub (ED25519)
Failed to read /proc/cmdline. Ignoring: Datei oder Verzeichnis nicht gefunden
invoke-rc.d: policy-rc.d denied execution of start.

Current default time zone: 'Europe/Zurich'
Local time is now: Sun Mar 27 14:35:19 CEST 2016.
Universal Time is now: Sun Mar 27 12:35:19 UTC 2016.

Root password is 'SdfLGP4Q', please change !

Optional können Sie das Template anpassen:
nano /var/cache/lxc/debian/rootfs-jessie-amd64/etc/resolv.conf
nameserver 10.48.42.1


Dateisystem einbinden


nano /var/lib/lxc/cluster/fstab
/data /var/lib/lxc/cluster/rootfs/data        none    bind    0       0



Container


Pakete


Hier einige nützliche Pakete:
# syslog
apt install inetutils-syslogd
# ping
apt install iputils-ping
# traceroute
apt install traceroute
# sendmail
apt install postfix
# crontab
apt install cron
# mail
apt install mailutils