Debian
Display nie ausgehen lassen
nano /etc/lightdm/lightdm.conf
xserver-command=X -s 0 -dpms
Docker installation
Hier findest du eine Schritt‑für‑Schritt-Anleitung, wie du Docker unter Debian bzw. Kali Linux installierst:
1. Voraussetzungen aktualisieren und notwendige Pakete installieren
Öffne ein Terminal und führe folgende Befehle aus:
apt-get update
apt-get install ca-certificates curl
2. Docker’s GPG-Schlüssel hinzufügen
Erstelle zunächst das Verzeichnis für die Schlüssel und lade dann den offiziellen Docker-GPG-Schlüssel herunter:
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
3. Docker-Repository in die APT-Quellen aufnehmen
Füge das Repository zu deinen APT-Quellen hinzu. Unter Debian verwendest du dazu in der Regel den Codename deiner Distribution, den du mit $(. /etc/os-release && echo "$VERSION_CODENAME") auslesen kannst:
# Add Docker's official GPG key:
apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
Hinweis für Kali Linux:
Da Kali eine abgeleitete Distribution ist, kann es sein, dass der automatisch ermittelte Codename (über $(. /etc/os-release && echo "$VERSION_CODENAME")) nicht korrekt ist.
In diesem Fall ersetze diesen Ausdruck manuell durch den entsprechenden Debian-Codename, z. B.:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
bookworm stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
Aktualisiere danach erneut die Paketliste:
apt-get update
4. Docker-Pakete installieren
Installiere die neuesten Versionen der Docker-Pakete mit:
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Docker Container erstellen
Container erstellen
1. Dockerfile erstellen
Ein Dockerfile definiert, wie dein Container aufgebaut sein soll. Erstelle ein neues Verzeichnis und eine Datei Dockerfile:
# Basis-Image wählen (z. B. Debian, Ubuntu oder Alpine)
FROM ubuntu:latest
# Update und Installation von Paketen
RUN apt update && apt install -y nano curl htop
# Standard-Shell setzen
CMD ["/bin/bash"]
# Basis-Image wählen (z. B. Debian, Ubuntu oder Alpine)
FROM ubuntu:latest
# Update und Installation von Paketen
RUN apt update && apt install -y nano curl htop iputils-ping iproute2 ethstatus vnstat btop htop sshfs wget sudo cifs-utils python3 python3-venv python3-pip git
# Standard-Shell setzen
CMD ["/bin/bash"]
2. Container bauen
docker build -t mein-linux-container .
3. Container starten
Starte den Container im interaktiven Modus:
docker run -it mein-linux-container
Container CPU beschränken
Option 1 - Begrenzung mit --cpus (empfohlen)
Da dein System 12 CPU-Kerne hat und du dem Docker-Container 95% der Gesamtleistung zuweisen möchtest, hast du zwei Möglichkeiten:
Du kannst den Container mit --cpus so starten:
docker run -it --cpus="11.4" mein-linux-container
🔹 Erklärung:
- 12 Kerne * 95% = 11.4 Kerne
- Der Container kann bis zu 11.4 Kerne nutzen, aber nicht mehr.
Falls der Container bereits läuft, kannst du die Einstellung nachträglich setzen:
docker update --cpus="11.4" mein-linux-container
Option 2 - Begrenzung mit --cpu-quota und --cpu-period
Falls du eine genauere Kontrolle möchtest:
docker run -it --cpu-quota=950000 --cpu-period=1000000 mein-linux-container
🔹 Erklärung:
--cpu-period=1000000→ Definiert eine Zeitspanne von 1 Sekunde (1.000.000 Mikrosekunden).--cpu-quota=950000→ Bedeutet, dass der Container in dieser Sekunde nur 950.000 Mikrosekunden CPU-Zeit nutzen darf (also 95%).
Falls dein Container bereits läuft:
docker update --cpu-quota=950000 --cpu-period=1000000 mein-linux-container
Option 3 - Begrenzung auf bestimmte Kerne mit --cpuset-cpus
Falls du den Container auf 11 von 12 Kernen begrenzen möchtest:
docker run -it --cpuset-cpus="0-10" mein-linux-container
🔹 Erklärung:
- Der Container darf nur CPU 0 bis CPU 10 nutzen (11 Kerne von 12).
- Dadurch wird die Leistung auf ca. 91.6% begrenzt (11/12), was nahe an 95% liegt.
Fazit: Welche Methode solltest du nehmen?
✅ Für eine einfache Begrenzung:
Nutze --cpus="11.4" → Leicht verständlich und flexibel.
✅ Für eine exakte Kontrolle über CPU-Zeit:
Nutze --cpu-quota=950000 --cpu-period=1000000.
✅ Falls du nur bestimmte Kerne zuweisen willst:
Nutze --cpuset-cpus="0-10" (≈91.6% Leistung).
Container CPU beschränken ohne Datenverlust
Option 1 - Container mit --rm vermeiden
Falls du den Container mit --rm gestartet hast, wird er nach dem Beenden gelöscht.
Starte den Container stattdessen ohne --rm, damit er bestehen bleibt:
docker run -it --cpus="11.4" --name mein-linux-container mein-linux-container
🔹 Erklärung:
--name test_land_1_container→ Gibt dem Container einen festen Namen, damit du ihn später wiederfinden kannst.- Nach
exitbleibt der Container bestehen, aber gestoppt.
Starte ihn später wieder mit:
docker start -ai mein-linux-container
Falls du ihn nicht interaktiv starten willst:
docker start mein-linux-container
docker attach mein-linux-container
Option 2 - Den Container committen (Änderungen dauerhaft speichern)
Falls du sysbench bereits installiert hast und den Container beenden möchtest, kannst du die Änderungen mit docker commit in ein neues Image speichern:
docker commit mein-linux-container mein-linux-container
🔹 Erklärung:
- Erstellt ein neues Image mit dem Namen
test_land_1_sysbench, das alle Änderungen enthält. - Danach kannst du es jederzeit mit folgendem Befehl starten:
docker run -it --cpus="11.4" mein-linux-container
Falls du möchtest, dass der Container diese Änderungen auch nach dem Schließen speichert, kannst du stattdessen docker start verwenden:
docker start -ai mein-linux-container
Option 3 - Ein Dockerfile nutzen (Empfohlen für reproduzierbare Container)
Falls du sysbench immer in diesem Container haben willst, solltest du ein Dockerfile erstellen:
Erstelle eine Datei Dockerfile:
FROM ubuntu:latest
RUN apt update && apt install -y sysbench
CMD ["/bin/bash"]
Baue das Image mit:
docker build -t mein-linux-container .
Starte den Container:
docker run -it --cpus="11.4" mein-linux-container
Vorteile:
✅ Jedes Mal, wenn du das Image nutzt, ist sysbench bereits installiert.
✅ Reproduzierbar – kannst du auf anderen Systemen wiederverwenden.
Nützliche Pakete
Ping (ping 1.1.1.1):
apt-get install iputils-ping -y
ip tools (ip a):
apt install iproute2 -y
Shortcuts - FN Tasten
Überprüfen von ACPI-Ereignissen
Installiere und starte den ACPI-Dienst:
sudo apt-get update
sudo apt-get install acpid
sudo systemctl enable acpid
sudo systemctl start acpid
Verwende acpi_listen, um zu sehen, ob die Fn-Tasten ACPI-Ereignisse auslösen:
acpi_listen
Drücke nun nacheinander die Fn-Tasten F9, F10 und F11.
Beobachte die Ausgabe im Terminal.
ACPI
ACPI arbeitet über ein Ereignissystem, das in deinem System so konfiguriert ist, dass es bei bestimmten Hardware-Ereignissen (wie z. B. Fn-Tastendrücken) automatisch Skripte oder Befehle ausführt. Hier eine Erklärung, wie das im Detail funktioniert:
-
ACPI-Ereignisdateien:
Im Verzeichnis/etc/acpi/events/liegen Konfigurationsdateien wiemedia_prev. Jede dieser Dateien enthält zwei wichtige Teile:- event=...
Hier wird ein Muster definiert, das einem bestimmten ACPI-Ereignis entspricht. Zum Beispiel könnteevent=ibm/hotkey LEN0268:00 00000080 00001317genau dem Signal entsprechen, das gesendet wird, wenn du F9 drückst. - action=...
Hier wird angegeben, welcher Befehl oder welches Skript ausgeführt werden soll, wenn ein Ereignis eintritt, das dem Muster entspricht. Im Fall vonmedia_prevwäre das beispielsweise ein Skript, das den Befehlplayerctl previousausführt, um zum vorherigen Track zu wechseln.
- event=...
-
Der ACPI-Daemon (acpid):
Beim Systemstart lädt der ACPI-Daemon (acpid) alle Dateien aus/etc/acpi/events/ein. Er „kennt“ dadurch alle Muster und die zugehörigen Aktionen.
Sobald ein ACPI-Ereignis (z. B. das Drücken von F9) vom Kernel erzeugt wird, vergleicht acpid dieses Ereignis mit den Mustern in den Konfigurationsdateien.- Passender Treffer: Findet acpid ein Muster, das zu deinem Tastendruck passt, wird automatisch die in der Datei definierte Aktion ausgeführt.
-
Kein manuelles „Verlinken“ nötig:
Es gibt keine separate Konfigurationsdatei, in der du explizit die Fn-Tasten mit den Skripten verknüpfst.
Stattdessen durchforstet acpid beim Start das Verzeichnis/etc/acpi/events/und „registriert“ alle darin enthaltenen Ereignismuster.
Wenn du also F9 drückst und das ACPI-Ereignis exakt mit dem in der Dateimedia_prevdefinierten Muster übereinstimmt, weiß acpid automatisch, dass es das entsprechende Skript (bzw. den Befehl) ausführen soll.
Zusammengefasst:
- ACPI-Ereignisdateien im Verzeichnis
/etc/acpi/events/definieren, welches ACPI-Signal (Muster) welcher Aktion zugeordnet ist. - Der ACPI-Daemon liest diese Dateien beim Start und überwacht fortlaufend die Ereignisse.
- Wenn ein Ereignis (z. B. F9) erkannt wird, das mit einem in einer dieser Dateien definierten Muster übereinstimmt, führt acpid die entsprechende Aktion aus (z. B. "Track zurück").
So „weiß“ das System also automatisch, dass bei einem F9-Druck der vorherige Track abgespielt werden soll – alles basiert auf den in den ACPI-Ereignisdateien definierten Mustern und Aktionen.
Next Song - Spotify
/etc/acpi/events/media_next
event=ibm/hotkey LEN0268:00 00000080 00001319
action=/usr/bin/sudo -u jj /etc/acpi/local/media_next.sh
/etc/acpi/local/media_next.sh
#!/bin/bash
export DISPLAY=:0.0
export XAUTHORITY=/home/jj/.Xauthority
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
playerctl -p spotify next
Previous Song - Spotfy
/etc/acpi/events/media_prev
event=ibm/hotkey LEN0268:00 00000080 00001317
action=/usr/bin/sudo -u jj /etc/acpi/local/media_prev.sh
/etc/acpi/local/media_prev.sh
#!/bin/bash
export DISPLAY=:0.0
export XAUTHORITY=/home/jj/.Xauthority
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
playerctl -p spotify previous
Play and Pause - Spotify
/etc/acpi/events/media_play_pause
event=ibm/hotkey LEN0268:00 00000080 00001318
action=/usr/bin/sudo -u jj /etc/acpi/local/media_play_pause.sh
/etc/acpi/local/media_play_pause.sh
#!/bin/bash
export DISPLAY=:0.0
export XAUTHORITY=/home/jj/.Xauthority
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
playerctl -p spotify play-pause