Szczegóły ebooka

Docker. Praktyczne zastosowania. Wydanie II

Docker. Praktyczne zastosowania. Wydanie II

Sean P. Kane, Karl Matthias

Ebook

Docker jest nową technologią, która radykalnie zmieniła podejście do wdrażania oprogramowania. Obrazy i kontenery Dockera upraszczają zarządzanie zależnościami, dzięki czemu testowanie, wdrażanie i skalowanie aplikacji staje się o wiele prostsze. W ciągu ostatnich lat Docker znacznie się rozwinął. Jest teraz bardzo stabilny i daje programistom wiele narzędzi do wyboru. W oczywisty sposób zwiększa to jego popularność wśród twórców dużych systemów. Niemniej zrozumieć działanie Dockera i nauczyć się wykorzystywać go w poprawny sposób - to nie jest trywialne i wymaga wysiłku.

Oto kolejne - zaktualizowane i uzupełnione - wydanie praktycznego przewodnika, dzięki któremu szybko nauczysz się korzystać z Dockera. Wyjaśniono tu podstawy jego działania, pokazano praktyczne techniki wdrażania i testowania kontenerów Dockera, przedstawiono także podstawowe wewnętrzne procesy kontenerów. Z książki dowiesz się, jak przygotować pakiet aplikacji ze wszystkimi ich zależnościami, a następnie przetestować go, wdrożyć, skalować oraz utrzymywać w środowiskach produkcyjnych. Znajdziesz tu również nowy rozdział na temat Docker Compose, głębsze omówienie trybu Docker Swarm, wprowadzenie do Kubernetes, a także przykłady optymalizacji obrazów Dockera i wiele innych przydatnych informacji.

W tej książce między innymi:

  • solidne wprowadzenie do Dockera oraz przygotowanie środowiska pracy
  • debugowanie obrazów i kontenerów Dockera
  • sprawne wdrażanie aplikacji w środowiskach produkcyjnych
  • wdrażanie kontenerów w publicznych i prywatnych chmurach
  • standardy branżowe przy projektowaniu oprogramowania w Dockerze

Docker. Koniec problemów z zależnościami w aplikacjach!


Przedmowa 11

Wstęp 13

1. Wprowadzenie 19

  • Co obiecuje Docker 19
    • Korzyści płynące ze stosowania procesów proponowanych przez Dockera 21
  • Czym Docker nie jest 23
  • Ważne pojęcia 24
  • Podsumowanie 25

2. Docker i jego otoczenie 27

  • Upraszczanie procesów 27
  • Duże wsparcie i wykorzystanie 30
  • Architektura 31
    • Model klient-serwer 32
    • Porty sieciowe i gniazdka Unix 32
    • Rozbudowane narzędzia 33
    • Tekstowy klient Dockera 33
    • API Docker Engine 34
    • Sieć w kontenerze 35
  • Najlepsze zastosowania Dockera 36
    • Kontenery to nie maszyny wirtualne 37
    • Ograniczona izolacja 37
    • Kontenery są lekkie 38
    • Dążenie do niezmienności infrastruktury 39
    • Aplikacje bezstanowe 39
    • Przenoszenie informacji o stanie na zewnątrz 40
  • Schemat pracy z Dockerem 41
    • Wersjonowanie 41
    • Budowanie 42
    • Testowanie 43
    • Tworzenie pakietów 44
    • Wdrażanie 44
    • Ekosystem Dockera 45
  • Podsumowanie 47

3. Instalacja Dockera 49

  • Klient Dockera 50
    • Linux 50
    • macOS, Mac OS X 52
    • Microsoft Windows 10 52
  • Serwer Dockera 53
    • Linux korzystający z systemd 53
    • Serwery na maszynach wirtualnych 53
  • Testowanie 61
    • Ubuntu 62
    • Fedora 62
    • Alpine Linux 62
  • Poznajemy serwer Dockera 62
  • Podsumowanie 64

4. Praca z obrazami Dockera 65

  • Anatomia pliku Dockerfile 65
  • Budowanie obrazu 68
  • Usuwanie problemów z obrazami 71
  • Uruchamianie zbudowanego obrazu 73
    • Zmienne środowiska 74
  • Własne obrazy bazowe 75
  • Zapisywanie obrazów 76
    • Publiczne rejestry 76
    • Rejestry prywatne 77
    • Autoryzacja w rejestrze 77
    • Uruchamianie własnego rejestru 80
  • Zaawansowane techniki budowania obrazów 84
    • Utrzymywanie małych obrazów 84
    • Warstwy są addytywne 90
    • Optymalizowanie pamięci podręcznej 92
  • Podsumowanie 96

5. Praca z kontenerami Dockera 97

  • Czym jest kontener? 97
    • Historia kontenerów 98
  • Tworzenie kontenera 99
    • Podstawowa konfiguracja 100
    • Magazyny danych 103
    • Przydzielanie zasobów 105
  • Uruchamianie kontenera 113
  • Automatyczne restartowanie kontenera 114
  • Zatrzymywanie kontenera 115
  • Wymuszanie zakończenia pracy kontenera 116
  • Pauzowanie i wznawianie pracy kontenera 117
  • Czyszczenie kontenerów i obrazów 118
  • Kontenery Windows 120
  • Podsumowanie 122

6. Poznawanie Dockera 123

  • Wyświetlanie wersji Dockera 123
  • Informacje o serwerze 125
  • Pobieranie aktualizacji obrazów 126
  • Pobieranie informacji o kontenerze 127
  • Wykorzystanie powłoki 128
  • Zwracanie wyniku 129
  • Wnętrze działającego kontenera 130
    • docker exec 131
    • nsenter 132
    • docker volume 134
  • Logi 136
    • Polecenie docker logs 136
    • Zaawansowane mechanizmy obsługi logów 138
    • Inne opcje 140
  • Monitorowanie Dockera 141
    • Statystyki kontenerów 141
    • Sprawdzanie stanu kontenera 145
    • docker events 147
    • cAdvisor 149
  • Prometheus 152
  • Dalsze eksperymenty 155
  • Podsumowanie 155

7. Debugowanie kontenerów 157

  • Dane generowane przez proces 157
  • Przeglądanie procesów 161
  • Kontrolowanie procesów 162
  • Przeglądanie sieci 165
  • Historia obrazów 167
  • Przeglądanie kontenera 168
  • Przeglądanie systemu plików 169
  • Podsumowanie 170

8. Docker Compose 171

  • Konfigurowanie Docker Compose 172
  • Uruchamianie usług 178
  • Poznajemy RocketChat 180
  • Ćwiczenia z Docker Compose 187
  • Podsumowanie 189

9. Tworzenie kontenerów produkcyjnych 191

  • Wdrażanie produkcyjne 191
  • Rola Dockera w środowisku produkcyjnym 192
    • Kontrola zadań 193
    • Kontrola zasobów 194
    • Sieć 194
    • Konfiguracja 195
    • Tworzenie i dostarczanie pakietów 195
    • Zapisywanie logów 195
    • Monitorowanie 196
    • Planowanie 196
    • Odkrywanie usług 199
    • Podsumowanie środowisk produkcyjnych 200
  • Docker i DevOps 201
    • Szybki przegląd 201
    • Zewnętrzne zależności 204
  • Podsumowanie 204

10. Skalowanie Dockera 205

  • Centurion 206
  • Tryb Docker Swarm 211
  • Amazon ECS i Fargate 219
    • Podstawy AWS 220
    • Konfiguracja IAM 220
    • Przygotowanie AWS CLI 221
    • Instancje kontenerów 222
    • Zadania 223
    • Testowanie zadania 229
    • Zatrzymywanie zadania 230
  • Kubernetes 231
    • Czym jest Minikube? 232
    • Instalowanie Minikube 232
    • Uruchomienie Kubernetes 235
    • Panel kontrolny Kubernetes 236
    • Kontenery i pody Kubernetes 237
    • Uruchomienie 238
    • Wdrażanie rzeczywistego stosu 240
    • Definicja usługi 241
    • Definicja PersistentVolumeClaim 242
    • Definicja wdrożenia 243
    • Wdrażanie aplikacji 244
    • Skalowanie 246
    • API kubectl 247
  • Podsumowanie 249

11. Zagadnienia zaawansowane 251

  • Szczegółowo o kontenerach 251
    • cgroups 252
    • Przestrzenie nazw 255
  • Bezpieczeństwo 259
    • UID 0 260
    • Kontenery uprzywilejowane 263
    • seccomp 265
    • SELinux i AppArmor 269
    • Demon Dockera 270
  • Zaawansowana konfiguracja 272
    • Sieć 272
  • Magazyny danych 278
  • Architektura Dockera 281
  • Wymiana środowisk uruchomieniowych 285
    • gVisor 288
  • Podsumowanie 290

12. Projektowanie platformy dla kontenerów 291

  • The Twelve-Factor App 292
    • Repozytorium kodów 292
    • Zależności 292
    • Konfiguracja 294
    • Usługi pomocnicze 295
    • Budowanie, udostępnianie, uruchamianie 296
    • Procesy 296
    • Wykorzystanie portów 297
    • Współbieżność 297
    • Dyspozycyjność 298
    • Podobieństwo środowiska programistycznego i produkcyjnego 298
    • Logi 298
    • Procesy administracyjne 299
    • Podsumowanie Twelve-Factor 299
  • The Reactive Manifesto 300
    • Responsywność 300
    • Stabilność 300
    • Elastyczność 300
    • Obsługa komunikatów 300
  • Podsumowanie 301

13. Wnioski 303

  • Wyzwania 303
  • Przepływ pracy w Dockerze 304
  • Minimalizowanie liczby artefaktów do wdrożenia 304
  • Optymalizacja przechowywania i przesyłania danych 305
  • Korzyści 305
  • Słowo końcowe 306

Skorowidz 307

  • Tytuł: Docker. Praktyczne zastosowania. Wydanie II
  • Autor: Sean P. Kane, Karl Matthias
  • Tytuł oryginału: Docker: Up & Running: Shipping Reliable Containers in Production, 2nd Edition
  • Tłumaczenie: Andrzej Stefański
  • ISBN: 978-83-283-5605-4, 9788328356054
  • Data wydania: 2019-08-27
  • Format: Ebook
  • Identyfikator pozycji: docke2
  • Wydawca: Helion