E-book details

Docker dla praktyków. Wydanie II

Docker dla praktyków. Wydanie II

Jeeva S. Chelladhurai, Vinod Singh, Pethuru Raj

Ebook

Docker to platforma oparta na otwartym kodzie źródłowym. Jest dziś uważany za najważniejsze narzędzie do rozwijania aplikacji rozproszonych. Umożliwia przyspieszenie prac nad oprogramowaniem, ale również jego konfiguracją, wdrożeniem i dostarczeniem do klienta. Docker pozwala na skalowanie infrastruktury aplikacji w czasie rzeczywistym i poprawę wykorzystania zasobów. Technologia Dockera ułatwia budowę aplikacji dobrze przemyślanych, przetwarzających dane w sposób kontekstowy, rozproszonych i skupionych na konkretnym celu biznesowym. Pozwala też na uruchamianie tworzonej aplikacji na dowolnej platformie!

Niniejsza książka jest przeznaczona dla programistów i osób zarządzających procesem tworzenia aplikacji. Przedstawiono tu informacje potrzebne do rozpoczęcia pracy z Dockerem, wyjaśniono też terminologię i polecenia potrzebne do zarządzania kontenerami. Opisano proces budowy i publikacji obrazów Dockera, nie zabrakło również informacji o sposobach tworzenia prywatnych repozytoriów. W książce poruszono również zagadnienia związane z orkiestracją kontenerów za pomocą narzędzia Docker Compose, debugowaniem kontenerów i zabezpieczaniem ich za pomocą modułów AppArmor i SELinux. Ciekawym elementem jest opis kilku praktycznych zastosowań platformy, dzięki czemu łatwiej uświadomić sobie przyczyny rosnącej popularności tego rozwiązania.

W tej książce między innymi:

  • rozpoczynanie pracy z Dockerem
  • automatyczne budowanie obrazów Dockera
  • udostępnianie danych i związane z tym problemy
  • testowanie i debugowanie aplikacji
  • zagadnienia bezpieczeństwa i zarządzania konfiguracją Dockera

Docker — nowy wymiar rozwoju aplikacji!


Jeeva S. Chelladhurai działa w branży IT od 20 lat. Specjalizuje się w DevOps i dostarczaniu rozwiązań mających postać chmury. Interesuje się centrami optymalizacji danych i rozwijaniem aplikacji za pomocą Dockera.

Vinod Singh od wielu lat tworzy oprogramowanie, projektuje architekturę systemów i testuje różne rozwiązania. Jego pasją są tworzenie oprogramowania w chmurze, rozwój sztucznej inteligencji i system Linux.

Dr Pethuru Raj jest głównym architektem w Reliance Jio Cloud, wcześniej był architektem infrastruktury chmury w indyjskim IBM Global Cloud Center of Excellence. W IT pracuje od ponad 17 lat, a od 8 lat zajmuje się również badaniami naukowymi.

O autorach (9)

O korektorze merytorycznym (11)

Wstęp (13)

Rozdział 1. Początek pracy z Dockerem (17)

  • Główne przyczyny korzystania z kontenerów Dockera (18)
  • Różnica pomiędzy konteneryzacją i wirtualizacją (19)
    • Najnowsze dodatki do platformy Docker (21)
  • Instalowanie silnika Docker Engine (23)
    • Instalowanie Dockera w systemie Ubuntu (24)
    • Instalowanie Dockera za pomocą zautomatyzowanego skryptu (25)
    • Instalowanie Dockera w systemie macOS (25)
    • Instalowanie Dockera w systemie Windows (27)
  • Poznaj konfigurację Dockera (29)
    • Komunikacja klient - serwer (31)
  • Pobieranie pierwszego obrazu Dockera (31)
  • Uruchamianie pierwszego kontenera w Dockerze (32)
    • Rozwiązywanie problemów z kontenerami Dockera (32)
  • Podsumowanie (33)

Rozdział 2. Obsługa kontenerów Dockera (35)

  • Wyjaśnienie terminów związanych z Dockerem (36)
    • Obrazy Dockera (36)
    • Kontenery Dockera (37)
    • Rejestr Dockera (38)
  • Praca z obrazami Dockera (38)
    • Serwis Docker Hub (40)
    • Wyszukiwanie obrazów Dockera (41)
  • Praca z interaktywnym kontenerem (42)
    • Śledzenie zmian wewnątrz kontenera (44)
    • Zarządzanie kontenerami (45)
    • Administrowanie kontenerami (48)
    • Budowanie obrazów na podstawie kontenerów (50)
    • Uruchamianie kontenera jako demona (51)
  • Podsumowanie (52)

Rozdział 3. Budowanie obrazów (53)

  • Zintegrowany system tworzenia obrazów Dockera (53)
  • Wprowadzenie do składni pliku Dockerfile (56)
    • Linia komentarza (56)
    • Dyrektywy analizatora składni (57)
  • Instrukcje pliku Dockerfile (57)
    • Instrukcja FROM (57)
    • Instrukcja MAINTAINER (58)
    • Instrukcja COPY (59)
    • Instrukcja ADD (59)
    • Instrukcja ENV (60)
    • Instrukcja ARG (61)
    • Zmienne środowiskowe (61)
    • Instrukcja USER (61)
    • Instrukcja WORKDIR (62)
    • Instrukcja VOLUME (62)
    • Instrukcja EXPOSE (63)
    • Instrukcja LABEL (63)
    • Instrukcja RUN (64)
    • Instrukcja CMD (65)
    • Instrukcja ENTRYPOINT (67)
    • Instrukcja HEALTHCHECK (68)
    • Instrukcja ONBUILD (69)
    • Instrukcja STOPSIGNAL (70)
    • Instrukcja SHELL (70)
    • Plik .dockerignore (70)
  • Wprowadzenie do zarządzania obrazami Dockera (71)
  • Dobre praktyki tworzenia plików Dockerfile (72)
  • Podsumowanie (73)

Rozdział 4. Publikowanie obrazów (75)

  • Czym jest Docker Hub? (76)
  • Wstawianie obrazów do repozytorium Docker Hub (79)
  • Automatyzacja procesu budowania obrazów (83)
  • Docker Hub i prywatne repozytoria (87)
  • Organizacje i zespoły w serwisie Docker Hub (88)
  • Interfejs REST API serwisu Docker Hub (89)
  • Podsumowanie (90)

Rozdział 5. Korzystanie z prywatnej infrastruktury Dockera (91)

  • Rejestr Docker Registry (92)
  • Zastosowania Docker Registry (95)
  • Uruchamianie rejestru Docker Registry i ładowanie obrazu (96)
  • Uruchamianie rejestru Docker Registry w środowisku localhost z certyfikatem SSL (99)
  • Uruchamianie rejestru Docker Registry z ograniczeniami (101)
  • Zarządzanie rejestrem Docker Registry za pomocą narzędzia Docker Compose (102)
  • Stosowanie równoważenia obciążenia (103)
  • Powiadomienia webhook (103)
  • Obsługa interfejsu HTTP API rejestru Docker Registry (104)
  • Podsumowanie (108)

Rozdział 6. Uruchamianie usług w kontenerze (109)

  • Obsługa sieci przez kontener - wprowadzenie (110)
  • Kontener jako usługa (115)
    • Budowanie obrazu serwera HTTP (115)
    • Uruchamianie obrazu serwera HTTP jako usługi (116)
    • Nawiązywanie połączenia z usługą HTTP (117)
  • Udostępnianie usług kontenera (118)
    • Publikowanie portu kontenera za pomocą parametru -p (118)
    • Kontenery i NAT (119)
    • Ustalanie portu kontenera (120)
    • Wiązanie kontenera z określonym adresem IP (122)
    • Automatyczne generowanie portu hosta Dockera (123)
    • Wiązanie portów za pomocą opcji EXPOSE i -P (124)
  • Podsumowanie (126)

Rozdział 7. Kontenery i udostępnianie danych (127)

  • Wolumin danych (128)
  • Zarządzanie woluminem za pomocą poleceń (131)
  • Udostępnianie danych hosta (132)
    • Udostępnianie danych przez host w praktyce (135)
  • Udostępnianie danych pomiędzy kontenerami (137)
    • Kontenery zawierające tylko dane (137)
    • Udostępnianie woluminów danych z innych kontenerów (138)
    • Praktyczne aspekty wymiany danych pomiędzy kontenerami (140)
  • Unikanie typowych problemów (142)
    • Wycieki katalogu (143)
    • Niechciane skutki stosowania woluminu (143)
  • Podsumowanie (145)

Rozdział 8. Kontenery i orkiestracja (147)

  • Mechanizm odkrywania usług wbudowany w Dockera (148)
  • Łączenie kontenerów (149)
  • Orkiestracja kontenerów (156)
    • Orkiestracja kontenerów za pomocą narzędzia Docker Compose (158)
    • Instalowanie narzędzia Docker Compose (158)
    • Plik docker-compose (159)
    • Polecenia narzędzia Docker Compose (161)
    • Typowe zastosowania (163)
  • Podsumowanie (167)

Rozdział 9. Testowanie z Dockerem (169)

  • Wprowadzenie do TDD (170)
  • Testowanie kodu w Dockerze (170)
    • Przeprowadzanie testu wewnątrz kontenera (174)
  • Integracja środowisk Docker i Jenkins podczas testowania (178)
    • Przygotowanie środowiska Jenkins (178)
    • Automatyzacja procesu testowania w Dockerze (181)
  • Podsumowanie (186)

Rozdział 10. Debugowanie kontenerów (187)

  • Kontenery Dockera i izolacja na poziomie procesu (188)
    • Grupy kontrolne (191)
    • Debugowanie aplikacji umieszczonej w kontenerze (192)
  • Polecenie docker exec (193)
  • Polecenie docker ps (194)
  • Polecenie docker top (195)
  • Polecenie docker stats (196)
  • Polecenie docker events (196)
  • Polecenie docker logs (197)
  • Polecenie docker attach (197)
  • Debugowanie pliku Dockerfile (198)
  • Podsumowanie (199)

Rozdział 11. Zabezpieczanie kontenerów Dockera (201)

  • Konteneryzacja a bezpieczeństwo (201)
    • Wpływ kontenerów Dockera na bezpieczeństwo (202)
    • Co jest bezpieczniejsze: maszyny wirtualne czy kontenery Dockera? (203)
    • Najważniejsze rozwiązania, dzięki którym kontenery są bezpieczne (206)
  • Niemodyfikowalna infrastruktura (206)
    • Izolacja zasobów (207)
    • Przywileje administratora - skutki i dobre praktyki (208)
    • Regulacja uprawnień użytkowników (208)
    • SELinux i bezpieczeństwo kontenerów (210)
    • Podpisywanie obrazów i weryfikacja za pomocą struktury TUF (214)
    • Nowatorskie zabezpieczenia (215)
  • Dobre praktyki zabezpieczania kontenerów (216)
    • Wskazówki dotyczące bezpiecznego wdrażania kontenerów Dockera (218)
    • Przyszłość bezpieczeństwa Dockera (219)
  • Podsumowanie (220)

Rozdział 12. Platforma Docker - możliwości i przykładowe zastosowania (221)

  • Opis kontenerów (222)
    • Charakterystyka kontenerów Dockera (222)
  • Funkcje platformy Docker (225)
    • Komponenty rozwijającej się platformy Docker (226)
  • Konsekwencje korzystania z technologii Dockera (227)
    • Nowoczesne rozwijanie projektów (227)
    • Architektura mikrousług i kontenery Dockera (228)
    • Optymalizacja infrastruktury (229)
    • Wprowadzanie metodyki DevOps (230)
    • Ciągła integracja i ciągłe wdrażanie (231)
    • Ciągłe dostarczanie (232)
    • Przyśpieszanie modernizacji prac (234)
  • Przykładowe zastosowania platformy Docker (237)
    • Integracja kontenerów - tworzenie przepływu pracy (237)
    • Docker w aplikacjach HPC i TC (237)
  • Podsumowanie (239)

Skorowidz (241)

  • Title: Docker dla praktyków. Wydanie II
  • Author: Jeeva S. Chelladhurai, Vinod Singh, Pethuru Raj
  • Original title: Learning Docker - Second Edition
  • Translation: Konrad Matuk
  • ISBN: 978-83-283-3975-0, 9788328339750
  • Date of issue: 2018-01-26
  • Format: Ebook
  • Item ID: docpr2
  • Publisher: Helion