Docker : praktyczne zastosowania / Karl Matthias, Sean P. Kane

Transkrypt

Docker : praktyczne zastosowania / Karl Matthias, Sean P. Kane
Docker : praktyczne zastosowania / Karl Matthias, Sean P. Kane. –
Gliwice, cop. 2017
Spis treści
Przedmowa
11
Wstęp
15
1. Wprowadzenie
Narodziny Dockera
Co obiecuje Docker
Korzyści płynące ze stosowania procesów proponowanych
przez Dockera
Czym Docker nie jest
19
19
19
2. Rzut oka na Dockera
Upraszczanie procesów
Duże wsparcie i wykorzystanie
Architektura
Model klient-serwer
Porty sieciowe i gniazdka sieciowe
Rozbudowane narzędzia
Tekstowy klient Dockera
API
Sieć w kontenerze
Najlepsze zastosowania Dockera
Kontenery to nie maszyny wirtualne
Kontenery są lekkie
Dążenie do niezmienności infrastruktury
Ograniczona izolacja
Aplikacje bezstanowe
Przenoszenie informacji o stanie na zewnątrz
Schemat pracy z Dockerem
Wersjonowanie
Budowanie
Testowanie
Tworzenie pakietów
Wdrażanie
Ekosystem Dockera
Podsumowanie
25
25
27
28
28
29
29
30
30
31
32
33
33
33
34
34
35
36
36
37
38
38
39
39
41
3. Instalacja Dockera
Ważne pojęcia
43
43
21
23
Klient Dockera
Linux
Mac OS X 10.10
Microsoft Windows 8
Serwer Dockera
Linux korzystający z systemd
Linux wykorzystujący upstart
Linux wykorzystujący init.d
Serwery na maszynach wirtualnych
Testowanie
Ubuntu
Fedora
CentOS
Podsumowanie
44
45
47
48
48
49
49
49
50
58
58
58
58
59
4. Praca z obrazami Dockera
Anatomia pliku Dockerfile
Budowanie obrazu
Uruchamianie zbudowanego obrazu
Zmienne środowiska
Własne obrazy bazowe
Zapisywanie obrazów
Publiczne rejestry
Rejestry prywatne
Autoryzacja w rejestrze
Tworzenie kopii rejestru
Inne sposoby dostarczania obrazów
61
61
64
68
69
69
70
70
71
71
74
77
5. Praca z kontenerami Dockera
Czym jest kontener?
Historia kontenerów
Tworzenie kontenera
Podstawowa konfiguracja
Magazyny danych
Ograniczenia 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
Kolejne kroki
79
79
80
81
82
85
87
92
93
94
95
96
96
98
6. Poznawanie Dockera
Wyświetlanie wersji Dockera
Informacje o serwerze
99
99
100
Pobieranie aktualizacji obrazów
Pobieranie informacji o kontenerze
Wnętrze działającego kontenera
docker exec
nsenter
Badanie powłoki
Zwracanie wyniku
Logi Dockera
Monitorowanie Dockera
Statystyki kontenerów
docker events
с Advisor
Dalsze eksperymenty
101
102
103
103
104
107
107
109
112
112
115
116
120
7. Tworzenie kontenerów produkcyjnych
Wdrażanie
Klasy narzędzi
Narzędzia do koordynacji
Narzędzia do planowania przetwarzania rozproszonego
Podsumowanie
Testowanie kontenerów
Szybki przegląd
Zewnętrzne zależności
121
121
122
123
123
125
125
125
128
8. 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
Dalsze kroki
129
129
133
134
135
136
136
138
138
9. Skalowanie Dockera
Docker Swarm
Centurion
Amazon EC2 Container Service
Konfiguracja IAM
Przygotowanie AWS CLI
Instancje kontenerów
Zadania
Testowanie zadania
Zatrzymywanie zadania
Podsumowanie
139
140
144
148
148
149
150
153
157
158
159
10. Zagadnienia zaawansowane
Mechanizmy wymienne
Sterownik uruchamiania
Magazyny danych
Szczegółowo o kontenerach
Grupy kontrolne (cgroups)
Przestrzeń nazw jądra, przestrzeń nazw użytkownika
Bezpieczeństwo
Czy kontener jest bezpieczny?
Czy demon Dockera jest bezpieczny?
Sieć
161
161
161
163
166
166
169
173
173
178
180
11. Projektowanie produkcyjnej platformy dla kontenerów
12factor
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
Podsumowując
185
186
186
186
188
190
190
190
191
191
192
192
193
193
194
194
194
194
194
195
195
12. Wnioski
Wyzwania
Przepływ pracy w Dockerze
Minimalizowanie liczby obiektów do wdrożenia
Optymalizacja przechowywania i przesyłania danych
Korzyści
Słowo końcowe
197
197
198
198
199
199
200
Skorowidz
201
oprac. BPK