Читать книгу Docker w praktyce - Ian Miell - Страница 4
Spis treści
ОглавлениеO ilustracji na okładcewydania w języku angielskim
1.1. Co i dlaczego, jeśli chodzi o Dockera
1.2. Budowanie dockerowej aplikacji
1.2.1. Sposoby tworzenia nowego obrazu Dockera
1.2.3. Budowanie dockerowego obrazu
1.2.4. Uruchamianie dockerowego kontenera
2. Zrozumieć Dockera: wewnątrz maszynowni
2.2. Demon Dockera
TECHNIKA 1. Otwarcie demona Dockera na świat
TECHNIKA 2. Uruchamianie kontenerów jako demonów
TECHNIKA 3. Przenoszenie Dockera na inną partycję
2.3. Klient Dockera
TECHNIKA 4. Użycie socat do monitorowania ruchu przez API Dockera
TECHNIKA 5. Używanie Dockera w przeglądarce
TECHNIKA 6. Użycie portów do połączenia z kontenerami
TECHNIKA 7. Umożliwianie komunikacji kontenerom
TECHNIKA 8. Linkowanie kontenerów z izolacją portów
2.4. Rejestry Dockera
Technika 9. Konfigurowanie lokalnego rejestru Dockera
2.5. Docker Hub
TECHNIKA 10. Znajdowanie i uruchamianie dockerowego obrazu
Część II. Docker i rozwój
3. Użycie Dockera jako lekkiej maszyny wirtualnej
3.1. Od maszyny wirtualnej do kontenera
TECHNIKA 11. Konwertowanie maszyny wirtualnej do kontenera
TECHNIKA 12. Kontenery jak hosty
TECHNIKA 13. Dzielenie systemu na mikrousługowe kontenery
TECHNIKA 14. Zarządzanie uruchamianiem usług w kontenerze
3.2. Zapisywanie i przywracanie pracy
TECHNIKA 15. Podejście „zapisz grę”: tania kontrola źródeł
TECHNIKA 16. Tagowanie w Dockerze
TECHNIKA 17. Udostępnianie obrazów w Docker Hub
TECHNIKA 18. Odwoływanie się do konkretnego obrazu w trakcie budowania
3.3. Środowiska jako procesy
TECHNIKA 19. Podejście „zapisz grę”: wygrana w 2048
4 . Budowanie obrazów
4.1. Budowanie obrazów
TECHNIKA 20. Wstrzykiwanie plików do obrazu z użyciem ADD
TECHNIKA 21. Przebudowa bez pamięci podręcznej
TECHNIKA 22. Odświeżanie pamięci podręcznej
TECHNIKA 23. Inteligentne odświeżanie pamięci podręcznej za pomocą argumentów budowania
TECHNIKA 24. Inteligentne odświeżanie pamięci podręcznej z użyciem dyrektywy ADD
TECHNIKA 25. Ustawianie w kontenerach właściwej strefy czasowej
TECHNIKA 26. Zarządzanie ustawieniami lokalnymi
TECHNIKA 27. Krokowe przechodzenie przez warstwy w obrazie
TECHNIKA 28. Onbuild oraz golang
5. Uruchamianie kontenerów
5.1. Uruchamianie kontenerów
TECHNIKA 29. Uruchamianie GUI w Dockerze
TECHNIKA 30. Kontrolowanie kontenerów
TECHNIKA 31. Zabijanie kontenerów wraz ze sprzątaniem
TECHNIKA 32. Użycie Docker Machine do udostępniania hostów Dockera
TECHNIKA 33. DNS wildcard
5.2. Woluminy – problem z trwałością
TECHNIKA 34. Woluminy Dockera: problemy z trwałością
TECHNIKA 35. Rozproszone woluminy z Resilio Sync
TECHNIKA 36. Zachowywanie historii basha swojego kontenera
TECHNIKA 37. Kontenery danych
TECHNIKA 38. Zdalne montowanie woluminów z użyciem SSHFS
TECHNIKA 39. Udostępnianie danych przez NFS
TECHNIKA 40. Kontenery z narzędziami deweloperskimi
6. Codzienność z Dockerem
6.1. Utrzymywanie porządku
TECHNIKA 41. Uruchamianie Dockera bez sudo
TECHNIKA 42. Sprzątanie kontenerów
TECHNIKA 43. Sprzątanie woluminów
TECHNIKA 44. Odłączanie się od kontenerów bez ich zatrzymywania
TECHNIKA 45. Używanie Portainera do zarządzania demonem Dockera
TECHNIKA 46. Generowanie diagramu zależności dla obrazów Dockera
TECHNIKA 47. Działanie bezpośrednie: wykonywanie poleceń w kontenerze
TECHNIKA 48. Czy jesteśmy w kontenerze Dockera?
7. Zarządzanie konfiguracją: utrzymywanie ładu
7.1. Zarządzanie konfiguracją i Dockerfile
TECHNIKA 49. Tworzenie niezawodnych, indywidualnych narzędzi z ENTRYPOINT
TECHNIKA 50. Zapobieganie aktualizacji pakietów przez określanie wersji
TECHNIKA 51. Zamiana tekstu za pomocą perl -p -i -e
TECHNIKA 52. Spłaszczanie obrazów
TECHNIKA 53. Zarządzanie obcymi pakietami za pomocą Aliena
7.2. Tradycyjne narzędzia do zarządzania konfiguracją w Dockerze
TECHNIKA 54. Tradycyjnie: Użycie make z Dockerem
TECHNIKA 55. Budowanie obrazów z Chef Solo
7.3. Małe jest piękne
TECHNIKA 56. Sztuczki ułatwiające zmniejszenie obrazu
TECHNIKA 57. Małe dockerowe obrazy z użyciem BusyBox i Alpine
TECHNIKA 58. Model Go minimalistycznych kontenerów
TECHNIKA 59. Użycie inotifywait do odchudzania kontenerów
TECHNIKA 60. Duże też może być piękne
Część III. Docker i DevOps
8. Ciągła integracja: przyspieszanie procesu rozwoju
8.1. Zautomatyzowane budowanie z Docker Hub
TECHNIKA 61. Wykorzystanie procesów Docker Hub
8.2. Bardziej efektywne budowanie
TECHNIKA 62. Przyspieszanie z użyciem eatmydata procesów budowania intensywnie wykorzystujących operacje I/O
TECHNIKA 63. Konfigurowanie pamięci podręcznej pakietów w celu szybszego budowania
TECHNIKA 64. Uproszczony Chrome w kontenerze
TECHNIKA 65. Uruchamianie testów Selenium wewnątrz Dockera
8.3. Konteneryzacja procesu CI
TECHNIKA 66. Uruchamianie węzła głównego Jenkinsa w kontenerze Dockera
TECHNIKA 67. Tworzenie złożonego środowiska deweloperskiego
TECHNIKA 68. Skalowanie procesu CI za pomocą wtyczki Jenkinsa – Swarm
TECHNIKA 69. Bezpieczna aktualizacja skonteneryzowanego serwera Jenkinsa
9. Ciągłe dostarczanie: idealne dopasowanie do zasad Dockera
9.1. Interakcja z innymi zespołami w strumieniu CD
TECHNIKA 70. Dockerowy kontrakt: zmniejszanie tarć
9.2. Ułatwianie wdrażania dockerowych obrazów
TECHNIKA 71. Manualne dublowanie obrazów w rejestrach
TECHNIKA 72. Dostarczanie obrazów przez połączenia o ograniczonej przepustowości
TECHNIKA 73. Udostępnianie obiektów Dockera jako plików TAR
9.3. Konfigurowanie obrazów dla różnych środowisk
TECHNIKA 74. Informowanie kontenerów za pomocą etcd
9.4. Aktualizacja kontenerów w trakcie ich działania
TECHNIKA 75. Użycie confd do wprowadzenia przełączeń bez przestojów
10. Symulacja sieci: realistyczne i bezbolesne testowanie środowiska
10.1. Komunikacja kontenerów: więcej niż ręczne linkowanie
TECHNIKA 76. Prosty klaster Docker Compose
TECHNIKA 77. Użycie Docker Compose do serwera SQLite
10.2. Używanie Dockera do symulacji sieci w świecie rzeczywistym
TECHNIKA 78. Symulowanie kłopotliwych sieci za pomocą Comcast
TECHNIKA 79. Symulowanie problematycznych sieci za pomocą Blockade
10.3. Docker oraz sieci wirtualne
TECHNIKA 80. Tworzenie kolejnej sieci wirtualnej w Dockerze
TECHNIKA 81. Konfigurowanie sieci substratowej z użyciem Weave
Część IV. Orkiestracja – od pojedynczej maszyny do chmury
11. Elementarz orkiestracji kontenerów
11.1. Docker na pojedynczym hoście
TECHNIKA 82. Zarządzanie kontenerami na hoście za pomocą systemd
TECHNIKA 83. Orkiestrowanie uruchamiania kontenerów na hoście
11.2. Ręczne zarządzanie Dockerem na wielu hostach
TECHNIKA 84. Ręczne zarządzanie Dockerem na wielu hostach za pomocą Heliosa
11.3. Wykrywanie usług: co my tu mamy?
TECHNIKA 85. Użycie Consula do wykrywania usług
TECHNIKA 86. Automatyczna rejestracja usług z użyciem Registratora
12. Centrum danych jako system operacyjny z Dockerem
12.1. Docker na wielu hostach
TECHNIKA 87. Bezproblemowy klaster Dockera z trybem swarm
TECHNIKA 88. Korzystanie z klastra Kubernetesa
TECHNIKA 89. Dostęp do API Kubernetesa z poziomu poda
TECHNIKA 90. Używanie OpenShift do lokalnego uruchamiania API AWS
TECHNIKA 91. Budowanie frameworka na Mesosie
TECHNIKA 92. Mikrozarządzanie Mesosem za pomocą Marathona
13. Platformy Dockera
13.1. Czynniki wyboru w organizacjach
13.1.1. Czas wprowadzenia na rynek
13.1.2. Kupno czy budowa
13.1.3. Monolityczne czy fragmentaryczne
13.1.4. Open source czy licencjonowane
13.1.5. Podejście do bezpieczeństwa
13.1.6. Niezależność konsumenta
13.1.7. Strategia chmurowa
13.1.8. Struktura organizacyjna
13.1.9. Wiele platform?
13.1.10. Podsumowanie czynników organizacyjnych
13.2. Co należy rozważyć przy adaptowaniu Dockera
13.2.1. Bezpieczeństwo i kontrola
13.2.2. Budowanie i dostarczanie obrazów
13.2.3. Uruchamianie kontenerów
13.3. Dostawcy, organizacje i produkty
13.3.1. The Cloud Native Computing Foundation (CNCF)
13.3.2. Firma Docker Inc.
13.3.3. Google
13.3.4. Microsoft
13.3.5. Amazon
13.3.6. Red Hat
Część V. Docker na produkcji
14. Docker i bezpieczeństwo
14.1. Dostęp do Dockera i co to oznacza
14.1.1. Czy nas to interesuje?
14.2. Środki bezpieczeństwa w Dockerze
TECHNIKA 93. Ograniczanie uprawnień
TECHNIKA 94. Skanowanie „złego” obrazu Dockera
14.3. Zabezpieczanie dostępu do Dockera
TECHNIKA 95. Autoryzacja HTTP w instancji Dockera
TECHNIKA 96. Zabezpieczanie API Dockera
14.4. Bezpieczeństwo na zewnątrz Dockera
TECHNIKA 97. Zmniejszanie potencjalnych obszarów ataku na kontener za pomocą DockerSlim
TECHNIKA 98. Usuwanie danych poufnych dodanych podczas budowania
TECHNIKA 99. OpenShift: platforma aplikacji jako usługa
TECHNIKA 100. Korzystanie z opcji zabezpieczeń
15. Całkiem proste: uruchamianie Dockera na produkcji
15.1. Monitorowanie
TECHNIKA 101. Podłączanie kontenerów do sysloga hosta
TECHNIKA 102. Rejestrowanie danych wyjściowych polecenia logs
TECHNIKA 103. Monitorowanie kontenerów za pomocą cAdvisor
15.2. Kontrola zasobów
TECHNIKA 104. Ograniczanie liczby rdzeni, na których może działać kontener
TECHNIKA 105. Przyznawanie ważnym kontenerom dodatkowej mocy procesora
TECHNIKA 106. Ograniczanie wykorzystania pamięci przez kontener
15.3. Administracyjne przypadki użycia Dockera
TECHNIKA 107. Użycie Dockera do uruchamiania zadań crona
TECHNIKA 108. Podejście „zapisz grę” w stosunku do kopii zapasowych
16. Docker na produkcji:radzenie sobie z wyzwaniami
16.1. Wydajność: nie można ignorować otoczenia
TECHNIKA 109. Uzyskiwanie dostępu z kontenera do zasobów hosta
TECHNIKA 110. Wyłączenie OOM killera
16.2. Gdy pojawiają się problemy z kontenerami – debugowanie w Dockerze
TECHNIKA 111. Debugowanie sieci kontenera za pomocą nsenter
TECHNIKA 112. Używanie tcpflow do debugowania w locie bez konieczności rekonfiguracji
TECHNIKA 113. Debugowanie kontenerów, które nie działają na określonych hostach
TECHNIKA 114. Wyodrębnianie pliku z obrazu
Dodatek A Instalowanie i korzystanie z Dockera
Podejście oparte na maszynie wirtualnej
Klient Dockera podłączony do zewnętrznego serwera Dockera
Natywny klient Dockera i maszyna wirtualna
Docker w Windows
Uzyskiwanie pomocy
Dodatek B Konfiguracja Dockera
Konfigurowanie Dockera
Restartowanie Dockera
Dodatek C Vagrant
Konfigurowanie
Graficzne środowiska użytkownika
Pamięć