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

Navigiere in das Verzeichnis, in dem dein Dockerfile liegt, und baue das Image:

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:

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:

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:

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:

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:

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:

  1. ACPI-Ereignisdateien:
    Im Verzeichnis /etc/acpi/events/ liegen Konfigurationsdateien wie media_prev. Jede dieser Dateien enthält zwei wichtige Teile:

    • event=...
      Hier wird ein Muster definiert, das einem bestimmten ACPI-Ereignis entspricht. Zum Beispiel könnte event=ibm/hotkey LEN0268:00 00000080 00001317 genau 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 von media_prev wäre das beispielsweise ein Skript, das den Befehl playerctl previous ausführt, um zum vorherigen Track zu wechseln.
  2. 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.
  3. 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 Datei media_prev definierten Muster übereinstimmt, weiß acpid automatisch, dass es das entsprechende Skript (bzw. den Befehl) ausführen soll.

Zusammengefasst:

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