O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Docker

Book Description

  • Softwareentwicklung und -Deployment verändert sich mit Hilfe von Containern/Docker grundlegend ("Revolution")+ Sehr fundierte Einführung, sehr gute Rezensionen des Originalbuchs+ Behandelt nicht nur in Docker, sondern auch dessen Ökosystem.

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Geleitwort zur deutschen Übersetzung
  5. Vorwort
  6. Inhaltsverzeichnis
  7. Teil I: Hintergrund und Grundlagen
    1. Kapitel 1: Was Container sind und warum man sie nutzt
      1. 1.1 Container versus VMs
      2. 1.2 Docker und Container
      3. 1.3 Eine Geschichte von Docker
      4. 1.4 Plugins und Plumbing
      5. 1.5 64-Bit-Linux
    2. Kapitel 2: Installation
      1. 2.1 Docker auf Linux installieren
        1. 2.1.1 SELinux im Permissive Mode ausführen
        2. 2.1.2 Ohne sudo starten
      2. 2.2 Docker auf Mac OS oder Windows installieren
      3. 2.3 Ein schneller Check
    3. Kapitel 3: Erste Schritte
      1. 3.1 Ihr erstes Image ausführen
      2. 3.2 Die grundlegenden Befehle
      3. 3.3 Images aus Dockerfiles erstellen
      4. 3.4 Mit Registries arbeiten
        1. 3.4.1 Private Repositories
      5. 3.5 Das offizielle Redis-Image verwenden
      6. 3.6 Zusammenfassung
    4. Kapitel 4: Grundlagen von Docker
      1. 4.1 Die Architektur von Docker
        1. 4.1.1 Zugrunde liegende Technologien
        2. 4.1.2 Zugehörige Technologien
        3. 4.1.3 Docker Hosting
      2. 4.2 Wie Images gebaut werden
        1. 4.2.1 Der Build Context
        2. 4.2.2 Imageschichten
        3. 4.2.3 Caching
        4. 4.2.4 Basis-Images
        5. 4.2.5 Anweisungen im Dockerfile
      3. 4.3 Container mit der Außenwelt verbinden
      4. 4.4 Container verlinken
      5. 4.5 Daten mit Volumes und Datencontainern verwalten
        1. 4.5.1 Daten gemeinsam nutzen
        2. 4.5.2 Datencontainer
      6. 4.6 Häufig eingesetzte Docker-Befehle
        1. 4.6.1 Der Befehl run
        2. 4.6.2 Container verwalten
        3. 4.6.3 Docker-Info
        4. 4.6.4 Container-Info
        5. 4.6.5 Arbeit mit Images
        6. 4.6.6 Die Registry verwenden
      7. 4.7 Zusammenfassung
  8. Teil II: Der Software-Lebenszyklus mit Docker
    1. Kapitel 5: Docker in der Entwicklung einsetzen
      1. 5.1 Sag »Hallo Welt!«
      2. 5.2 Mit Compose automatisieren
        1. 5.2.1 Der Compose-Workflow
      3. 5.3 Zusammenfassung
    2. Kapitel 6: Eine einfache Webanwendung erstellen
      1. 6.1 Eine einfache Webseite erstellen
      2. 6.2 Auf vorhandene Images zurückgreifen
      3. 6.3 Caching ergänzen
      4. 6.4 Microservices
      5. 6.5 Zusammenfassung
    3. Kapitel 7: Bereitstellen von Images
      1. 7.1 Namensgebung für Images und Repositories
      2. 7.2 Der Docker Hub
      3. 7.3 Automatisierte Builds
      4. 7.4 Private Distribution
        1. 7.4.1 Eine eigene Registry betreiben
        2. 7.4.2 Kommerzielle Registries
      5. 7.5 Die Imagegröße verringern
      6. 7.6 Herkunft eines Image
      7. 7.7 Zusammenfassung
    4. Kapitel 8: Continuous Integration und Testen mit Docker
      1. 8.1 identidock mit Unit-Tests versehen
      2. 8.2 Einen Jenkins-Container erstellen
        1. 8.2.1 Builds triggern
      3. 8.3 Das Image pushen
        1. 8.3.1 Sinnvolles Taggen
        2. 8.3.2 Staging und Produktion
        3. 8.3.3 Image Sprawl
        4. 8.3.4 Jenkins Slaves durch Docker betreiben
      4. 8.4 Backups für Jenkins
      5. 8.5 Gehostete CI-Lösungen
      6. 8.6 Testen und Microservices
        1. 8.6.1 Im Produktivumfeld testen
      7. 8.7 Zusammenfassung
    5. Kapitel 9: Container deployen
      1. 9.1 Ressourcen mit Docker Machine aufsetzen
      2. 9.2 Einen Proxy verwenden
      3. 9.3 Ausführungsoptionen
        1. 9.3.1 Shell-Skripten
        2. 9.3.2 Einen Process Manager einsetzen (oder systemd, sie alle zu knechten)
        3. 9.3.3 Ein Tool zum Configuration Management einsetzen
      4. 9.4 Host-Konfiguration
        1. 9.4.1 Ein Betriebssystem wählen
        2. 9.4.2 Einen Storage-Treiber wählen
      5. 9.5 Spezialisierte Hosting-Möglichkeiten
        1. 9.5.1 Triton
        2. 9.5.2 Google Container Engine
        3. 9.5.3 Amazon EC2 Container Service
        4. 9.5.4 Giant Swarm
      6. 9.6 Persistente Daten und Produktivcontainer
      7. 9.7 Gemeinsame Geheimnisse
        1. 9.7.1 Geheimnisse im Image ablegen
        2. 9.7.2 Geheimnisse in Umgebungsvariablen übergeben
        3. 9.7.3 Geheimnisse in Volumes übergeben
        4. 9.7.4 Einen Key/Value-Store einsetzen
      8. 9.8 Vernetzen
      9. 9.9 Produktiv-Registry
      10. 9.10 Continuous Deployment/Delivery
      11. 9.11 Zusammenfassung
    6. Kapitel 10: Protokollieren und Überwachen
      1. 10.1 Protokollieren
        1. 10.1.1 Standard-Logging von Docker
        2. 10.1.2 Logs zusammenfassen
        3. 10.1.3 Mit ELK loggen
        4. 10.1.4 Docker-Logging mit syslog
        5. 10.1.5 Logs aus Dateien auslesen
      2. 10.2 Überwachen und Benachrichtigen
        1. 10.2.1 Mit den Docker-Tools überwachen
        2. 10.2.2 cAdvisor
        3. 10.2.3 Cluster-Lösungen
      3. 10.3 Kommerzielle Monitoring- und Logging-Lösungen
      4. 10.4 Zusammenfassung
  9. Teil III: Tools und Techniken
    1. Kapitel 11: Vernetzung und Service Discovery
      1. 11.1 Ambassadors
      2. 11.2 Service Discovery
        1. 11.2.1 etcd
        2. 11.2.2 SkyDNS
        3. 11.2.3 Consul
        4. 11.2.4 Registrieren
        5. 11.2.5 Andere Lösungen
      3. 11.3 Networking-Optionen
        1. 11.3.1 Bridge
        2. 11.3.2 Host
        3. 11.3.3 Container
        4. 11.3.4 None
      4. 11.4 Neues Docker-Networking
        1. 11.4.1 Netzwerktypen und Plugins
      5. 11.5 Vernetzungslösungen
        1. 11.5.1 Overlay
        2. 11.5.2 Weave
        3. 11.5.3 Flannel
        4. 11.5.4 Project Calico
      6. 11.6 Zusammenfassung
    2. Kapitel 12: Orchestrieren, Clustering und Verwaltung
      1. 12.1 Clustering- und Orchestrierungstools
        1. 12.1.1 Swarm
        2. 12.1.2 fleet
        3. 12.1.3 Kubernetes
        4. 12.1.4 Mesos und Marathon
      2. 12.2 Container-Management-Plattformen
        1. 12.2.1 Rancher
        2. 12.2.2 Clocker
        3. 12.2.3 Tutum
      3. 12.3 Zusammenfassung
    3. Kapitel 13: Container sichern und beschränken
      1. 13.1 Worüber Sie sich Gedanken machen sollten
      2. 13.2 Verteidigung in der Tiefe
        1. 13.2.1 Least Privilege
      3. 13.3 identidock absichern
      4. 13.4 Container nach Host trennen
      5. 13.5 Updates anwenden
        1. 13.5.1 Nicht unterstützte Treiber vermeiden
      6. 13.6 Imageherkunft
        1. 13.6.1 Docker Digests
        2. 13.6.2 Docker Content Trust
        3. 13.6.3 Reproduzierbare und vertrauenswürdige Dockerfiles
      7. 13.7 Sicherheitstipps
        1. 13.7.1 Einen Benutzer setzen
        2. 13.7.2 Netzwerkzugriffe von Containern beschränken
        3. 13.7.3 setuid/setgid-Binaries entfernen
        4. 13.7.4 Den Speicher begrenzen
        5. 13.7.5 Den CPU-Einsatz beschränken
        6. 13.7.6 Neustarts begrenzen
        7. 13.7.7 Zugriffe auf die Dateisysteme begrenzen
        8. 13.7.8 Capabilities einschränken
        9. 13.7.9 Ressourcenbeschränkungen (ulimits) anwenden
      8. 13.8 Einen gehärteten Kernel ausführen
      9. 13.9 Linux Security Modules
        1. 13.9.1 SELinux
        2. 13.9.2 AppArmor
      10. 13.10 Auditing
      11. 13.11 Reaktion auf Zwischenfälle
      12. 13.12 Zukünftige Features
      13. 13.13 Zusammenfassung
  10. Fußnoten
    1. Kapitel 1: Was Container sind und warum man sie nutzt
    2. Kapitel 2: Installation
    3. Kapitel 3: Erste Schritte
    4. Kapitel 4: Grundlagen von Docker
    5. Kapitel 5: Docker in der Entwicklung einsetzen
    6. Kapitel 6: Eine einfache Webanwendung erstellen
    7. Kapitel 7: Bereitstellen von Images
    8. Kapitel 8: Continuous Integration und Testen mit Docker
    9. Kapitel 9: Container deployen
    10. Kapitel 10: Protokollieren und Überwachen
    11. Kapitel 11: Vernetzung und Service Discovery
    12. Kapitel 12: Orchestrieren, Clustering und Verwaltung
    13. Kapitel 13: Container sichern und beschränken
  11. Index