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
exit
bleibt 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
No Comments