Docker. Praktyczne zastosowania. Wydanie II - ebook
Docker. Praktyczne zastosowania. Wydanie II - 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!
Spis treści
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
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-5605-4 |
Rozmiar pliku: | 4,9 MB |