b137359b90
Files changed: - kb/concepts/Denylist over Allowlist.md - kb/concepts/LLM Wiki Pattern.md - kb/concepts/SSD TRIM.md - kb/entities/people/E3DC GmbH.md - kb/entities/people/Vannevar Bush.md - kb/entities/projects/ha-core.md - kb/entities/projects/hacs-integration-blueprint.md - kb/entities/systems/AGENTS.md.md - kb/entities/systems/CLAUDE.md.md - kb/entities/systems/E3DC.md - kb/entities/systems/ENVIRONMENT.md.md - kb/entities/systems/Memex.md - kb/entities/systems/Tolkien Gateway.md - kb/entities/technologies/Arch Linux.md - kb/entities/technologies/Disk Encryption.md - kb/entities/technologies/Docker.md - kb/entities/technologies/Gitea Actions.md - kb/entities/technologies/Gitea.md - kb/entities/technologies/Go.md - kb/entities/technologies/Home Assistant.md - kb/entities/technologies/Kernel PM Governors.md - kb/entities/technologies/LVM.md - kb/entities/technologies/Linux Kernel.md - kb/entities/technologies/MQTT.md - kb/entities/technologies/OPC UA.md - kb/entities/technologies/Python.md - kb/entities/technologies/Rust.md - kb/entities/technologies/Wine GE.md - kb/entities/technologies/Wine-Staging.md - kb/entities/technologies/acpi-cpufreq.md - kb/entities/technologies/amd-pstate.md - kb/entities/technologies/iii Engine.md - kb/entities/tools/AUR.md - kb/entities/tools/Act Runner.md - kb/entities/tools/Agent Memory.md - kb/entities/tools/Aura.md - kb/entities/tools/Bottles.md - kb/entities/tools/ChatGPT.md - kb/entities/tools/Claude Code.md - kb/entities/tools/Codex CLI.md - kb/entities/tools/Dataview.md - kb/entities/tools/GPG.md - kb/entities/tools/GitHub Copilot.md - kb/entities/tools/Gitea MCP Server.md - kb/entities/tools/Lutris.md - kb/entities/tools/Marp.md - kb/entities/tools/Mistral Vibe.md - kb/entities/tools/NotebookLM.md - kb/entities/tools/Obsidian Web Clipper.md - kb/entities/tools/Obsidian.md - kb/entities/tools/OpenAI Codex.md - kb/entities/tools/OpenCode.md - kb/entities/tools/Pi.md - kb/entities/tools/Proton.md - kb/entities/tools/Wine.md - kb/entities/tools/awesome-llm-wiki.md - kb/entities/tools/farzaa gist.md - kb/entities/tools/gdeploy.md - kb/entities/tools/makepkg.md - kb/entities/tools/pascalandy schema.md - kb/entities/tools/qmd.md - kb/entities/tools/wikitool.md - kb/log.md - work/link-taxonomy-migration/glossary.md
136 lines
4.3 KiB
Markdown
136 lines
4.3 KiB
Markdown
---
|
|
type: types/entity.md
|
|
entity_type: technology
|
|
tags: [containers, containerization, docker, runtime]
|
|
created: 2026-07-25
|
|
modified: 2026-09-01
|
|
related: []
|
|
sources: [Source - Docker Cheatsheet]
|
|
confidence: 0.95
|
|
confidence_base: 0.95
|
|
provenance: sourced
|
|
summary: Container-Plattform als Industriestandard für CI/CD-Infrastruktur, mit BuildKit-Daemon und entfernter Docker-Verwaltung über SSH.
|
|
---
|
|
# Docker
|
|
|
|
**Typ:** Technology (Container Platform)
|
|
|
|
## Beschreibung
|
|
|
|
Docker ist die Industrie-Standard-Container-Plattform, die in der gesamten CI/CD-Infrastruktur für Container-Laufzeit, Build-Ausführung und Service-Bereitstellung verwendet wird. Sie bietet die Grundlage für die Ausführung von Containern auf `ci-runner.example.net` und `docker-host.example.net`.
|
|
|
|
## Kerndaten
|
|
|
|
- **Typ:** Container-Plattform
|
|
- **Status:** Aktiv
|
|
- **Zweck:** Container-Laufzeit und Build-Ausführung
|
|
- **Lizenz:** Apache 2.0
|
|
- **Geschrieben in:** Go
|
|
|
|
## Architektur in der Infrastruktur
|
|
|
|
### Auf ci-runner.example.net
|
|
- **Docker-Daemon:** Docker-Service auf Host-Ebene
|
|
- **Runner-Container:** `act_runner` läuft als Docker-Container
|
|
- **BuildKit-Daemon:** `moby/buildkitd` läuft als Docker-Container auf Port 1234
|
|
- **Job-Container:** Kurzlebige Container pro CI-Job in isolierten Bridge-Netzen
|
|
|
|
### Auf dem Docker-Host
|
|
- **Legacy-Container:** Werden von `ci-runner.example.net` aus remote verwaltet
|
|
- **Docker-Daemon:** Standard Docker-Service
|
|
- **Zugriff:** Via SSH aus CI-Workflows
|
|
|
|
## Konfigurationsdetails
|
|
|
|
### Docker-Socket-Anbindung
|
|
- **Ort:** `/var/run/docker.sock`
|
|
- **Angebunden an:** `act_runner`-Container (für BuildKit-Verwaltung)
|
|
- **NICHT angebunden an:** Job-Container (Sicherheit: vermeidet DinD-Risiken)
|
|
|
|
### Network-Modi
|
|
- **Runner:** `host`-Network-Modus für Cache-Anbindung
|
|
- **Jobs:** Isolierte temporäre Bridge-Netze (leeres `container.network`)
|
|
- **BuildKit:** `bridge`-Netz mit Port 1234 freigegeben
|
|
|
|
## Fernverwaltung
|
|
|
|
### SSH-basierte Docker-Kontrolle
|
|
CI-Workflows auf `ci-runner.example.net` verwalten Docker auf `docker-host.example.net`:
|
|
|
|
```bash
|
|
# Set Docker host to remote via SSH
|
|
export DOCKER_HOST=ssh://ci@192.0.2.10
|
|
|
|
# Execute Docker commands remotely
|
|
docker ps
|
|
docker-compose up -d
|
|
```
|
|
|
|
### Authentifizierung
|
|
- **SSH-Schlüssel:** Ed25519-Schlüssel aus 1Password "CI-CD"-Vault
|
|
- **Benutzer:** ci
|
|
- **Methode:** Standard-SSH-Authentifizierung
|
|
|
|
## Sicherheitsaspekte
|
|
|
|
### Docker-in-Docker (DinD) - Vermeidung
|
|
Traditioneller DinD-Ansatz:
|
|
```bash
|
|
# NOT USED - Security risk
|
|
docker run -v /var/run/docker.sock:/var/run/docker.sock ...
|
|
```
|
|
|
|
**Stattdessen:**
|
|
- BuildKit-Daemon läuft separat
|
|
- Job-Container verbinden sich via TCP
|
|
- Kein Zugriff auf Host Docker-Socket in Jobs
|
|
|
|
### Vorteile
|
|
- **Isolation:** Job-Container können nicht auf Host Docker zugreifen
|
|
- **Sicherheit:** Reduzierte Angriffsfläche
|
|
- **Kontrolle:** Zentralisierte Build-Infrastruktur
|
|
|
|
## Beziehungen
|
|
|
|
, [[Gitea Actions]]
|
|
- **Teil von:** Kerninfrastruktur
|
|
|
|
## Version und Kompatibilität
|
|
|
|
### Kompatibilitätshinweise
|
|
- **Debian 13:** Exzellente Docker-Unterstützung (Referenzplattform)
|
|
- **Arch Linux:** Gute Docker-Unterstützung für Build-Szenarien
|
|
- **Alpine Linux:** Unterstützt, aber eingeschränkt durch musl libc für einige Tools
|
|
|
|
### 1Password CLI-Kompatibilität
|
|
- **Funktioniert:** glibc-basierte Distributionen (Debian, Arch)
|
|
- **Funktioniert nicht:** musl libc-basierte Distributionen (Alpine) mit Exitcode 127
|
|
- **Auswirkung:** Container-Build-Jobs verwenden `debian:trixie-slim` anstelle von Alpine
|
|
|
|
## Volume-Verwaltung und Fehlerbehebung
|
|
|
|
### Overlay-FS-Auflösung
|
|
Bei der Fehlerbehebung von Backup-Problemen, gesperrten Dateien oder Berechtigungsproblemen können Sie Overlay-Dateisystem-Verzeichnisse ihren Containern zuordnen:
|
|
|
|
```bash
|
|
for container in $(docker ps --all --quiet --format '{{ .Names }}'); do
|
|
echo "$(docker inspect $container --format '{{.GraphDriver.Data.MergedDir }}' | grep -Po '^.+?(?=/merged)' ) = $container"
|
|
done
|
|
```
|
|
|
|
**Ausgabe:** Listet alle Overlay-Verzeichnisse unter `/var/lib/docker/overlay2/` mit ihren entsprechenden Container-Namen auf.
|
|
|
|
**Anwendungsfall:** Identifiziert, welcher Container ein bestimmtes Overlay-Verzeichnis besitzt (z. B. `/var/lib/docker/overlay2/768... = starwars`).
|
|
|
|
## Siehe auch
|
|
|
|
- Primärer Docker-Host
|
|
- Legacy Docker-Host
|
|
- Build-System mit Docker
|
|
- Docker-Container
|
|
- CI/CD mit Docker
|
|
- Verwendet Docker als Laufzeit
|
|
concept
|
|
concept
|
|
- [[Source - Docker Cheatsheet]]
|