Docker. Niezawodne kontenery produkcyjne. Praktyczne zastosowania. Wydanie III
Spis treści
Przedmowa
Wstęp
1. Wprowadzenie
Co obiecuje Docker
Korzyści płynące ze stosowania procesów proponowanych przez Dockera
Czym Docker nie jest
Ważne pojęcia
Podsumowanie
2. Docker i jego otoczenie
Upraszczanie procesów
Duże wsparcie i szerokie wykorzystanie
Architektura
Model klient-serwer
Porty sieciowe i gniazdka Unix
Rozbudowane narzędzia
Tekstowy klient Dockera
API Docker Engine
Sieć w kontenerze
Najlepsze zastosowania Dockera
Kontenery to nie maszyny wirtualne
Ograniczona izolacja
Kontenery są lekkie
Dążenie do niezmienności infrastruktury
Aplikacje bezstanowe
Przenoszenie informacji o stanie na zewnątrz
Schemat pracy z Dockerem
Wersjonowanie
Budowanie
Testowanie
Tworzenie pakietów
Wdrażanie
Ekosystem Dockera
Podsumowanie
3. Instalacja Dockera
Klient Dockera
Linux
macOS, Mac OS X
Microsoft Windows 11
Serwer Dockera
Linux korzystający z systemd
Serwery na maszynach wirtualnych
Testowanie
Ubuntu
Fedora
Alpine Linux
Poznajemy serwer Dockera
Podsumowanie
4. Praca z obrazami Dockera
Anatomia pliku Dockerfile
Budowanie obrazu
Uruchamianie zbudowanego obrazu
Parametry budowania
Zmienne środowiska jako konfiguracja
Własne obrazy bazowe
Zapisywanie obrazów
Publiczne rejestry
Rejestry prywatne
Autoryzacja w rejestrze
Uruchamianie własnego rejestru
Optymalizowanie obrazów
Utrzymywanie małych obrazów
Warstwy są addytywne
Korzystanie z pamięci podręcznej dla warstw
Pamięć podręczna dla katalogów
Usuwanie problemów z obrazami
Naprawianie obrazów pre-BuildKit
Naprawianie obrazów BuildKita
Budowanie dla wielu architektur
Podsumowanie
5. Praca z kontenerami
Czym jest kontener?
Historia kontenerów
Tworzenie kontenera
Podstawowa konfiguracja
Magazyny danych
Przydzielanie zasobów
Uruchamianie kontenera
Automatyczne restartowanie kontenera
Zatrzymywanie kontenera
Wymuszanie zakończenia pracy kontenera
Pauzowanie i wznawianie pracy kontenera
Czyszczenie kontenerów i obrazów
Kontenery windowsowe
Podsumowanie
6. Poznawanie Dockera
Wyświetlanie wersji Dockera
Informacje o serwerze
Pobieranie aktualizacji obrazów
Pobieranie informacji o kontenerze
Wykorzystanie powłoki
Zwracanie wyniku
Wnętrze działającego kontenera
docker container exec
docker volume
Logi
Polecenie docker container logs
Zaawansowane mechanizmy obsługi logów
Monitorowanie Dockera
Statystyki kontenerów
Sprawdzanie stanu kontenera
docker system events
cAdvisor
Prometheus
Dalsze eksperymenty
Podsumowanie
7. Debugowanie kontenerów
Dane generowane przez proces
Przeglądanie procesów
Kontrolowanie procesów
Przeglądanie sieci
Historia obrazów
Przeglądanie kontenera
Przeglądanie systemu plików
Podsumowanie
8. Docker Compose
Konfigurowanie Docker Compose
Uruchamianie usług
Poznajemy Rocket.Chat
Ćwiczenia z Docker Compose
Zarządzanie konfiguracją
Wartości domyślne
Wartości obowiązkowe
Plik dotenv
Podsumowanie
9. Tworzenie kontenerów produkcyjnych
Wdrażanie produkcyjne
Rola Dockera w środowisku produkcyjnym
Kontrola zadań
Kontrola zasobów
Sieć
Konfiguracja
Tworzenie i dostarczanie pakietów
Zapisywanie logów
Monitorowanie
Planowanie
Odkrywanie usług
Podsumowanie środowisk produkcyjnych
Docker i DevOps
Szybki przegląd
Zewnętrzne zależności
Podsumowanie
10. Skalowanie kontenerów
Tryb Docker Swarm
Kubernetes
Minikube
Kubernetes zintegrowany z Docker Desktop
Kind
Amazon ECS i Fargate
Podstawy AWS
Konfiguracja IAM
Przygotowanie AWS CLI
Instancje kontenerów
Zadania
Testowanie zadania
Zatrzymywanie zadania
Podsumowanie
11. Zagadnienia zaawansowane
Szczegółowo o kontenerach
cgroups
Przestrzenie nazw
Bezpieczeństwo
UID 0
Tryb bez uprawnień roota
Kontenery uprzywilejowane
seccomp
SELinux i AppArmor
Demon Dockera
Zaawansowana konfiguracja
Sieć
Magazyny danych
nsenter
Debugowanie kontenerów niezawierających powłoki
Architektura Dockera
Wymiana środowisk uruchomieniowych
gVisor
Podsumowanie
12. Rozszerzający się krajobraz
Narzędzia klienckie
Nerdctl
podman i buildah
Zintegrowane narzędzia dla programistów
Rancher Desktop
Podman Desktop
Podsumowanie
13. Projektowanie platformy dla kontenerów
The Twelve-Factor App
Repozytorium kodów
Zależności
Konfiguracja
Usługi pomocnicze
Budowanie, udostępnianie, uruchamianie
Procesy
Wykorzystanie portów
Współbieżność
Dyspozycyjność
Podobieństwo środowiska programistycznego i produkcyjnego
Logi
Procesy administracyjne
Podsumowanie Twelve-Factor
The Reactive Manifesto
Responsywność
Stabilność
Elastyczność
Obsługa komunikatów
Podsumowanie
14. Wnioski
Perspektywy na przyszłość
Wyzwania
Przepływ pracy w Dockerze
Minimalizowanie liczby artefaktów do wdrożenia
Optymalizacja przechowywania i przesyłania danych
Korzyści
Słowo końcowe
Opinie
Na razie nie ma opinii o produkcie.