LXC, LXD, Docker & SNAP in PoxmoX LXC Container installieren

LXC Container in ProxmoX installieren

Bildschirmfoto%20von%202019-08-18%2000-23-53

Feature: Nesting, Fuse

Bildschirmfoto%20von%202019-08-18%2000-28-17

Im ProxmoX LXC Container LXD, Docker & SNAP installieren

Einloggen von der ProxmoX Console aus in die LXC Box:

pct enter 900 

Kleine Anpassungen:

nano /etc/profile
-------------------
export LANG=de_AT.UTF-8
export LC_ALL=de_AT.UTF-8
export LC_CTYPE=de_AT.UTF-8
export LANGUAGE=de_AT.UTF-8
export edit=nano
export editor=nano
export EDITOR=/usr/bin/nano

locale-gen en_US.UTF-8; locale-gen en_GB.UTF-8; locale-gen de_AT.UTF-8; locale-gen de_DE.UTF-8; update-locale LANG=de_AT.UTF-8; dpkg-reconfigure locales
dpkg-reconfigure tzdata
apt update && apt install htop curl sudo lsb-release psmisc pwgen net-tools gnupg
apt remove --purge postfix  # der cBUZZ Server ist kein MX, das erledigt die commBOX
apt install language-pack-de language-pack-de-base   # Nur in einer Ubuntu Box
apt update; apt dist-upgrade; apt autoremove; apt clean

Das Ergebnis: Ein sehr schlankes Ubuntu LTS 18.04:

          # Dateisystem                    Größe Benutzt Verf. 
df -h     # = rpool/data/subvol-900-disk-0   12G    495M   12G
htop      # Mem < 30M von 4GB
----- lsof -i ----------------------
COMMAND    PID            USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
systemd-r  220 systemd-resolve   13u  IPv4 3982194      0t0  TCP 127.0.0.53:domain (LISTEN)
sshd       245            root    3u  IPv4 3985515      0t0  TCP *:ssh (LISTEN)

LXC oder LXD Container im LXC Container von ProxmoX

Wir haben jetzt drei Möglichkeiten:

1) LXC über die .deb Paketverwaltung (V3.0.3)

apt install lxc
# Vorgeschlagene Pakete:
  ifupdown btrfs-tools lvm2 lxc-templates lxctl
# Die folgenden NEUEN Pakete werden installiert:
  bridge-utils dns-root-data dnsmasq-base liblxc-common liblxc1 libpam-cgfs lxc lxc-utils lxcfs uidmap
0 aktualisiert, 10 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Nach dieser Operation werden 5MB Plattenplatz zusätzlich benutzt.

Auch nach der Installation von LXC Version 3.0.3 haben wir ein sauberes und sehr schlankes System:

lxc-info --version  # ... zeigt uns 3.0.3
lxc-create -t download -n commBOX  # Wir wählen dann ein Ubuntu Bionic LTS 18.04 amd64
lxc-start -n commBOX
lxc-ls -f
    NAME    STATE   AUTOSTART GROUPS IPV4      IPV6 UNPRIVILEGED 
    commBOX RUNNING 0         -      10.0.3.10 -    false

du -sh /var/lib/lxc/commBOX    #    271M /var/lib/lxc/commBOX
lxc-attach commBOX    # In die commBOX gehen und anpassen :-)

Anmerkung htop oder top zeigt mir jetzt nicht mehr die auf die commBOX begrenzten Werte, sondern den gesamten Arbeitsspeicher des Systems!

lxc-destroy -n commBOX
apt purge lxc*
    Die folgenden Pakete werden ENTFERNT:  lxc* lxc-utils* lxcfs*
    dabei sind /var/cache/lxc und das Verzeichnis »/etc/lxc« nicht leer (mit rm löschen) ...
apt update; apt dist-upgrade; apt autoremove; apt clean
    Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt: bridge-utils dns-root-data dnsmasq-base liblxc-common liblxc1 libpam-cgfs uidmap

Bevor wir lxd testen, haben wir wieder unsere schlanke Ausgangslage:

df -h     # pool/data/subvol-900-disk-0   12G    539M   12G    5% /
htop      # Mem < 39M von 4GB
----- lsof -i ----------------------
COMMAND    PID            USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
systemd-r  220 systemd-resolve   13u  IPv4 3982194      0t0  TCP 127.0.0.53:domain (LISTEN)
sshd       245            root    3u  IPv4 3985515      0t0  TCP *:ssh (LISTEN)

2) LXD über die .deb Paketverwaltung (V3.0.3)

apt install lxd
Vorgeschlagene Pakete:
    criu lxd-tools
Die folgenden NEUEN Pakete werden installiert:
    acl dns-root-data dnsmasq-base ebtables liblxc-common liblxc1 liblzo2-2 libuv1 lxcfs lxd lxd-client squashfs-tools uidmap xdelta3
0 aktualisiert, 14 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Nach dieser Operation werden 37MB Plattenplatz zusätzlich benutzt.

lxd init

LXD ist jetzt installiert und initialisiert und bleibt noch schlank:

       # Dateisystem                    Größe Benutzt Verf. Verw% Eingehängt auf
df -h  # rpool/data/subvol-900-disk-0   12G    1,3G    11G    11% /
du -sh /var/lib/lxd/  # 735M
du -sh /var/lib/lxd/containers/commBOX/  # 557M
lsof -i
---------------------------------
COMMAND     PID            USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
systemd-r  3945 systemd-resolve   13u  IPv4 4659206      0t0  TCP 127.0.0.53:domain (LISTEN)
sshd      11533            root    3u  IPv4 4869944      0t0  TCP *:ssh (LISTEN)
lxd       16435            root   21u  IPv6 8889918      0t0  TCP *:8443 (LISTEN)
dnsmasq   16538             lxd    4u  IPv4 8900776      0t0  UDP *:bootps 
dnsmasq   16538             lxd    9u  IPv4 8900782      0t0  TCP 10.82.23.1:domain (LISTEN)

lxc launch ubuntu:18.04 commBOX
lxc list

lxc exec commBOX bash
lxc --version  # zeigt und die Version 3.0.3

Anmerkung, alles bleibt sehr schlank, aber htop oder top zeigt uns wieder nicht die auf die commBOX begrenzten Werte, sondern den gesamten Arbeitsspeicher des Systems! LXD über .deb ist aktuell wohl die beste Lösung, wenn alles sehr schlank bleiben soll. Das ist eine gute Ausgangslage für mail-in-a-box …

curl -s https://mailinabox.email/setup.sh | sudo bash
lxc stop commBOX; lxc delete commBOX
apt purge lxd*; apt autoremove
df -h
Dateisystem                  Größe Benutzt Verf. Verw% Eingehängt auf
rpool/data/subvol-900-disk-0   12G    494M   12G    5% /

Okay, wir sind wieder zurück bei unserer schlanken Ausgangslage.

3) LXD über SNAP installiert (V3.16)