Szczegóły ebooka

Docker. Praktyczne zastosowania

Docker. Praktyczne zastosowania

Karl Matthias, Sean P. Kane

Ebook

Docker został zaprezentowany światu w marcu 2013 roku i praktycznie od początku wzbudza zaskakujące zainteresowanie. Narzędzie to pozwala na proste zarządzanie procesem tworzenia określonego elementu aplikacji, wdrażania go na dużą skalę w dowolnym środowisku oraz usprawniania przepływu pracy. Ma przy tym duże możliwości i łączy w sobie prostotę wdrażania aplikacji z prostotą administrowania. Jednym słowem, Docker jest niezwykle użytecznym narzędziem!

Niniejsza książka jest praktycznym przewodnikiem, dzięki któremu Docker przyczyni się do sukcesu organizacji na wiele sposobów: uprości podejmowanie decyzji dotyczących architektury, ułatwi pisanie narzędzi pomocniczych, a przede wszystkim umożliwi bezproblemowe przeprowadzanie integracji kolejnych elementów aplikacji. Opisano tu, w jaki sposób za pomocą Dockera można przygotować pakiet aplikacji ze wszystkimi ich zależnościami, a następnie je testować, wdrażać, skalować oraz utrzymywać ich pracę w środowiskach produkcyjnych.

W tej książce omówiono:

  • wykorzystanie Dockera do automatyzacji i uproszczenia obsługi pakietów
  • zasady pracy z obrazami, kontenerami i aplikacjami Dockera
  • dołączanie do kodu aplikacji niezbędnych plików systemu operacyjnego
  • możliwość testowania tego samego elementu aplikacji we wszystkich systemach i środowiskach
  • oddzielenie warstwy aplikacji od warstwy sprzętowej bez poświęcania cennych zasobów
  • zagadnienia konfiguracji sieci, koordynacji, bezpieczeństwa i zarządzania konfiguracją Dockera

Docker — sposób na niezawodne zarządzanie rozwojem aplikacji!

Przedmowa (11)

Wstęp (15)

1. Wprowadzenie (19)

  • Narodziny Dockera (19)
  • Co obiecuje Docker (19)
    • Korzyści płynące ze stosowania procesów proponowanych przez Dockera (21)
  • Czym Docker nie jest (23)

2. Rzut oka na Dockera (25)

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

3. Instalacja Dockera (43)

  • Ważne pojęcia (43)
  • Klient Dockera (44)
    • Linux (45)
    • Mac OS X 10.10 (47)
    • Microsoft Windows 8 (48)
  • Serwer Dockera (48)
    • Linux korzystający z systemd (49)
    • Linux wykorzystujący upstart (49)
    • Linux wykorzystujący init.d (49)
    • Serwery na maszynach wirtualnych (50)
  • Testowanie (58)
    • Ubuntu (58)
    • Fedora (58)
    • CentOS (58)
  • Podsumowanie (59)

4. Praca z obrazami Dockera (61)

  • Anatomia pliku Dockerfile (61)
  • Budowanie obrazu (64)
  • Uruchamianie zbudowanego obrazu (68)
    • Zmienne środowiska (69)
  • Własne obrazy bazowe (69)
  • Zapisywanie obrazów (70)
    • Publiczne rejestry (70)
    • Rejestry prywatne (71)
    • Autoryzacja w rejestrze (71)
    • Tworzenie kopii rejestru (74)
    • Inne sposoby dostarczania obrazów (77)

5. Praca z kontenerami Dockera (79)

  • Czym jest kontener? (79)
    • Historia kontenerów (80)
  • Tworzenie kontenera (81)
    • Podstawowa konfiguracja (82)
    • Magazyny danych (85)
    • Ograniczenia zasobów (87)
  • Uruchamianie kontenera (92)
  • Automatyczne restartowanie kontenera (93)
  • Zatrzymywanie kontenera (94)
  • Wymuszanie zakończenia pracy kontenera (95)
  • Pauzowanie i wznawianie pracy kontenera (96)
  • Czyszczenie kontenerów i obrazów (96)
  • Kolejne kroki (98)

6. Poznawanie Dockera (99)

  • Wyświetlanie wersji Dockera (99)
  • Informacje o serwerze (100)
  • Pobieranie aktualizacji obrazów (101)
  • Pobieranie informacji o kontenerze (102)
  • Wnętrze działającego kontenera (103)
    • docker exec (103)
    • nsenter (104)
  • Badanie powłoki (107)
  • Zwracanie wyniku (107)
  • Logi Dockera (109)
  • Monitorowanie Dockera (112)
    • Statystyki kontenerów (112)
    • docker events (115)
    • cAdvisor (116)
  • Dalsze eksperymenty (120)

7. Tworzenie kontenerów produkcyjnych (121)

  • Wdrażanie (121)
    • Klasy narzędzi (122)
    • Narzędzia do koordynacji (123)
    • Narzędzia do planowania przetwarzania rozproszonego (123)
    • Podsumowanie (125)
  • Testowanie kontenerów (125)
    • Szybki przegląd (125)
    • Zewnętrzne zależności (128)

8. Debugowanie kontenerów (129)

  • Dane generowane przez proces (129)
  • Przeglądanie procesów (133)
  • Kontrolowanie procesów (134)
  • Przeglądanie sieci (135)
  • Historia obrazów (136)
  • Przeglądanie kontenera (136)
  • Przeglądanie systemu plików (138)
  • Dalsze kroki (138)

9. Skalowanie Dockera (139)

  • Docker Swarm (140)
  • Centurion (144)
  • Amazon EC2 Container Service (148)
    • Konfiguracja IAM (148)
    • Przygotowanie AWS CLI (149)
    • Instancje kontenerów (150)
    • Zadania (153)
    • Testowanie zadania (157)
    • Zatrzymywanie zadania (158)
  • Podsumowanie (159)

10. Zagadnienia zaawansowane (161)

  • Mechanizmy wymienne (161)
    • Sterownik uruchamiania (161)
    • Magazyny danych (163)
  • Szczegółowo o kontenerach (166)
    • Grupy kontrolne (cgroups) (166)
    • Przestrzeń nazw jądra, przestrzeń nazw użytkownika (169)
  • Bezpieczeństwo (173)
    • Czy kontener jest bezpieczny? (173)
    • Czy demon Dockera jest bezpieczny? (178)
  • Sieć (180)

11. Projektowanie produkcyjnej platformy dla kontenerów (185)

  • 12factor (186)
    • Repozytorium kodów (186)
    • Zależności (186)
    • Konfiguracja (188)
    • Usługi pomocnicze (190)
    • Budowanie, udostępnianie, uruchamianie (190)
    • Procesy (190)
    • Wykorzystanie portów (191)
    • Współbieżność (191)
    • Dyspozycyjność (192)
    • Podobieństwo środowiska programistycznego i produkcyjnego (192)
    • Logi (193)
    • Procesy administracyjne (193)
    • Podsumowanie twelve-factor (194)
  • The Reactive Manifesto (194)
    • Responsywność (194)
    • Stabilność (194)
    • Elastyczność (194)
    • Obsługa komunikatów (195)
    • Podsumowując (195)

12. Wnioski (197)

  • Wyzwania (197)
  • Przepływ pracy w Dockerze (198)
  • Minimalizowanie liczby obiektów do wdrożenia (198)
  • Optymalizacja przechowywania i przesyłania danych (199)
  • Korzyści (199)
  • Słowo końcowe (200)

Skorowidz (201)

  • Tytuł: Docker. Praktyczne zastosowania
  • Autor: Karl Matthias, Sean P. Kane
  • Tytuł oryginału: Docker: Up & Running
  • Tłumaczenie: Andrzej Stefański
  • ISBN: 978-83-283-2905-8, 9788328329058
  • Data wydania: 2017-01-16
  • Format: Ebook
  • Identyfikator pozycji: docker
  • Wydawca: Helion