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