Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17...

34

Transcript of Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17...

Page 1: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy
Page 2: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Tytuł oryginału: Mastering Docker - Second Edition

Tłumaczenie: Konrad Matuk

ISBN: 978-83-283-4308-5

Copyright © Packt Publishing 2017. First published in the English language under the title ‘Mastering Docker - Second Edition – (9781787280243)’

Polish edition copyright © 2018 by Helion SAAll rights reserved.

All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher.

Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji.

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.

Wydawnictwo HELIONul. Kościuszki 1c, 44-100 GLIWICEtel. 32 231 22 19, 32 230 98 63e-mail: [email protected]: http://helion.pl (księgarnia internetowa, katalog książek)

Drogi Czytelniku!Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/dockazMożesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.

Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/dockaz.zip

Printed in Poland.

• Kup książkę• Poleć książkę • Oceń książkę

• Księgarnia internetowa• Lubię to! » Nasza społeczność

Page 3: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Spis tre ci

O autorach 9

O recenzentach 11

Wst p 13

Rozdzia 1. Docker — wprowadzenie 17

Czym jest Docker? 17Programi ci 18Administratorzy 19Firmy 21

Ró nice pomi dzy dedykowanymi hostami, maszynami wirtualnymi i Dockerem 22Instalacja Dockera 23

Instalacja w systemie Linux (Ubuntu 16.04) 24Instalacja w systemie macOS 25Instalacja w systemie Windows 10 Professional 27Starsze systemy operacyjne 28

Klient Dockera w wierszu polece 29Ekosystem Dockera 32Podsumowanie 33

Rozdzia 2. Tworzenie obrazów kontenerów 35

Plik Dockerfile — wprowadzenie 35Szczegó owa analiza pliku Dockerfile 37Dobre praktyki pracy z plikami Dockerfile 41

Budowanie obrazów Dockera 42Polecenie docker build 42Korzystanie z utworzonego wcze niej kontenera 44Budowanie od podstaw 48

Zmienne rodowiskowe 50Umieszczanie zmiennych rodowiskowych w pliku Dockerfile 50

Czas wszystko po czy ze sob 50Podsumowanie 56

Poleć książkęKup książkę

Page 4: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Spis tre ci

4

Rozdzia 3. Przechowywanie obrazów i ich dystrybucja 57

Repozytorium Docker Hub 57Panel g ówny 58Przycisk Explore 59Przycisk Organizations 60Menu Create 60Profil i ustawienia 61Strona Stars 62Automatyzacja budowy obrazu 63adowanie w asnych obrazów 68

Serwis Docker Store 70Rejestr Docker Registry 71

Docker Registry — informacje ogólne 71Wdra anie w asnego rejestru 72Rejestr Docker Trusted Registry 74

Niezale ne rejestry 75Quay 75Rejestr Amazon EC2 Container Registry 78

Microbadger 79Podsumowanie 82

Rozdzia 4. Zarz dzanie kontenerami 83

Polecenia s u ce do obs ugi kontenerów Dockera 84Podstawy 84Komunikowanie si z kontenerami 88Dzienniki i informacje o procesach 91Ograniczenia zasobów 93Stany kontenerów i pozosta e polecenia 95Usuwanie kontenerów 97

Obs uga sieci i wolumenów 100Sie 100Wolumeny Dockera 107

Podsumowanie 112

Rozdzia 5. Docker Machine 113

Wprowadzenie do narz dzia Docker Machine 113Docker Machine i wdra anie lokalnych hostów Dockera 114Uruchamianie hostów Dockera w chmurze 119

DigitalOcean 119Amazon Web Services 121

Wi cej o sieciowych mo liwo ciach Dockera 124Stosowanie innych bazowych systemów operacyjnych 128

System CoreOS w chmurze DigitalOcean 128System RancherOS w maszynie WirtualBox 130

Podsumowanie 131

Poleć książkęKup książkę

Page 5: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Spis tre ci

5

Rozdzia 6. Docker Compose 133

Wprowadzenie do Docker Compose 133Uruchamianie aplikacji za pomoc narz dzia Docker Compose 135Plik YAML narz dzia Docker Compose 137

Plik YAML aplikacji Mobycounter 137Aplikacja do g osowania 139

Polecenia Docker Compose 146Up i PS 147Config 148Pull, build i create 148Start, stop, restart, pause i unpause 149Top, logs i events 149Exec i run 151Scale 152Kill, rm i down 153

Podsumowanie 154

Rozdzia 7. Docker Swarm 155

Docker Swarm — instalacja 156Role Docker Swarm 156

Mened er Swarm 157Wykonawca Swarm 157

Korzystanie z trybu Docker Swarm 158Tworzenie klastra 158Do czanie wykonawców 160Listy w z ów 161Zarz dzanie klastrem 161Promowanie hosta roboczego 164Degradacja w z a mened era 165Drena w z a 166

Us ugi i stosy Docker Swarm 168Us ugi 168Stosy 171

Kasowanie klastra Swarm 173Równowa enie obci e , nak adki i tworzenie harmonogramów 174

Równowa enie obci e wej ciowych 174Nak adki sieciowe 175Tworzenie harmonogramu 176

Podsumowanie 176

Rozdzia 8. Portainer 177

Historia prac nad narz dziem Portainer 177Uruchamianie narz dzia Portainer 178Korzystanie z narz dzia Portainer 180

Panel g ówny 181Szablony aplikacji 181

Poleć książkęKup książkę

Page 6: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Spis tre ci

6

Kontenery 183Obrazy 187Sieci i wolumeny 190Zdarzenia 190Docker 191

Portainer i Docker Swarm 191Tworzenie klastra 192Us uga Portainer 193Ró nice zwi zane z prac w klastrze 194

Podsumowanie 199

Rozdzia 9. Rancher 201

Instalacja i konfiguracja uwierzytelniania 201Instalacja 202Konfiguracja uwierzytelniania 204

Tworzenie stada 207Uruchamianie stosów 209

Stosy definiowane przez u ytkownika 210Podgl d w a ciwo ci kontenerów 216Katalog 217

Usuwanie stada 217Inne klastry 218Podsumowanie 221

Rozdzia 10. Us uga Docker Cloud 223

Zak adanie konta 224czenie kont 225

DigitalOcean 226Amazon Web Services 227

Uruchamianie w z ów 231Uruchamianie stosu 234Tryb Swarm 238Docker dla Amazon Web Services 239Podsumowanie 244

Rozdzia 11. Bezpiecze stwo platformy Docker 245

Bezpiecze stwo kontenerów 245Zalety 246Host Dockera 246Zaufane ród a obrazów 247

Polecenia Dockera 247Polecenie run 247Polecenie diff 249

Dobre praktyki 250Dobre praktyki pracy w Dockerze 250Zalecenia organizacji Center for Internet Security 251

Poleć książkęKup książkę

Page 7: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Spis tre ci

7

Aplikacja Docker Bench Security 252Uruchamianie narz dzia w systemach macOS i Windows 253Uruchamianie narz dzia w systemie Linux Ubuntu 253Analiza zwracanych informacji 255Docker Bench — podsumowanie 260

Skanowanie zabezpiecze Dockera 260Niezale ne us ugi poprawiaj ce bezpiecze stwo 262

Quay 262Clair 263

Podsumowanie 264

Rozdzia 12. Przep yw zada w platformie Docker 265

Docker i prace programistyczne 265Monitorowanie 277Rozszerzanie na zewn trzne platformy 286

Instalator Tectonic 286Platforma Heroku 289Us uga Amazon Elastic Container Service 290

Jak wygl da rodowisko produkcyjne? 291Hosty Dockera 291Obs uga klastrów 292Rejestry obrazów 293

Podsumowanie 294

Rozdzia 13. Dalsze kroki z Dockerem 295

Wykrywanie us ug 295Consul 295Narz dzie etcd 304Interfejs Docker API 304

Projekt Moby Project 306W asny wk ad w rozwój Dockera 308

Rozwój kodu 308Pomoc innym 309Inny wk ad w rozwój Dockera 310

Podsumowanie 310

Skorowidz 311

Poleć książkęKup książkę

Page 8: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Poleć książkęKup książkę

Page 9: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

1

Docker— wprowadzenie

Witaj w drugim wydaniu ksi ki Docker. Programowanie aplikacji dla zaawansowanych. W roz-dziale 1. znajdziesz podstawowe wiadomo ci dotycz ce Dockera, które powiniene opanowaprzed przyst pieniem do lektury kolejnych rozdzia ów. Je eli nie masz zbyt du ego do wiad-czenia w pracy z Dockerem, to nie przejmuj si , po przeczytaniu tego rozdzia u dowiesz siwszystkiego, co niezb dne, aby pój dalej. Po przeczytaniu ca ej ksi ki powiniene zostamistrzem Dockera potrafi cym implementowa Dockera we w asnych rodowiskach, b d cymw stanie zbudowa i uruchomi aplikacje w kontenerach.

W tym rozdziale opiszemy nast puj ce wysokopoziomowe zagadnienia: Czym jest Docker? Czym si ró ni Docker od standardowych maszyn wirtualnych? Jak wygl da proces instalacji Dockera? Jakie polecenia obs uguje Docker? Jak wygl da ekosystem Dockera?

Czym jest Docker?Definiowanie, czym jest Docker, zacznijmy od cytatu ze strony internetowej tej platformy:

Docker to obecnie najpopularniejsza platforma przeznaczona do konteneryzacji aplikacji.Umo liwia ona rozwi zanie problemów typu „a u mnie dzia a” powstaj cych podczastworzenia aplikacji przez ró nych programistów. Administratorzy korzystaj z Dockeraw celu uruchamiania na jednym serwerze wielu aplikacji w oddzielonych od siebie

Poleć książkęKup książkę

Page 10: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Docker. Programowanie aplikacji dla zaawansowanych

18

kontenerach i zarz dzania nimi. Docker jest u ywany w wielu firmach podczas pracyzgodnie z metodologi programowania zwinnego, umo liwiaj cej szybsze tworzenie no-wych funkcji, a tak e zwi kszenie bezpiecze stwa w aplikacjach serwerowych systemówLinux i Windows.

Te s owa nie oddaj wszystkiego. Oto liczby opisuj ce popularno Dockera przedstawioneprzez prezesa firmy b d cej twórc Dockera, Bena Goluba, podczas otwarcia konferencjiDockerCon w 2017 r.:

14 milionów hostów Dockera; 900 tysi cy aplikacji korzystaj cych z Dockera; wzrost o 77 000% liczby miejsc pracy zwi zanych z Dockerem; 12 miliardów pobra obrazów; 3300 osób zaanga owanych w rozwój platformy.

Te liczby robi wra enie, je eli we miemy pod uwag , e Docker to technologia obecna narynku dopiero od trzech lat. Materia wideo z tym wyst pieniem mo esz obejrze na stroniehttps://www.slideshare.net/Docker/dockercon-2017-general-session-day-1-ben-golub.

Spróbujmy zrozumie problemy, które rozwi zuje Docker. Zacznijmy od problemów programistów.

Programi ciPoni szy mem to chyba najlepsza ilustracja problemu „na moim komputerze dzia a a bezproblemów”. Obraz ten zacz kilka lat temu pojawia si na prezentacjach, forach dyskusyj-nych i w kana ach Slacka:

To do mieszna ilustracja cz stego problemu, z którym spotyka em si osobi cie.

Poleć książkęKup książkę

Page 11: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Rozdzia 1. • Docker — wprowadzenie

19

ProblemPomimo zachowania najlepszych praktyk metodologii DevOps wci mo liwe jest istnienieró nic pomi dzy rodowiskiem programistycznym i produkcyjnym.

Programista korzystaj cy z wersji PHP przystosowanej do pracy w systemie macOS prawdo-podobnie b dzie pracowa w innej wersji ni serwer produkcyjny pracuj cy pod kontrolsystemu Linux. Nawet je eli obie wersje PHP s identyczne, to rodowiska te mog charakte-ryzowa si inn konfiguracj , innymi przywilejami dotycz cymi korzystania z plików itd. Otojedno potencjalne ród o problemu.

Programista wdra aj cy kod w rodowisku produkcyjnym musi sobie odpowiedzie na nast -puj ce pytanie: Czy lepiej jest skonfigurowa rodowisko produkcyjne tak, aby jego konfigu-racja odpowiada a rodowisku deweloperskiemu, czy lepiej skonfigurowa rodowisko dewe-loperskie tak, aby by o skonfigurowane tak samo jak rodowisko produkcyjne?

Idealnie by oby, aby wszystko by o skonfigurowane w identyczny sposób. Dotyczy do laptopaprogramisty i produkcyjnego serwera, ale to do utopijna wizja, któr trudno zrealizowa .Ka dy pracuje w nieco inny sposób. Zgodno platform trudno jest uzyska nawet wtedy, gdywszystko obs uguje ta sama osoba, a w przypadku zespo u sk adaj cego si z setki programi-stów jest to praktycznie niemo liwe.

Rozwi zanie problemu za pomoc DockeraProgramista korzystaj cy z platformy Docker przeznaczonej dla systemu Windows lub Macmo e obudowa swój kod kontenerem, który mo e by zdefiniowany samodzielnie alboutworzony za pomoc pliku Dockerfile (zagadnienie to opiszemy w rozdziale 2. „Tworzenieobrazów kontenerów”) lub pliku Docker Compose (zagadnienie to opiszemy w rozdziale 6.„Docker Compose”).

Dzi ki temu rozwi zaniu mo liwe jest korzystanie z wybranego rodowiska programistyczne-go i preferowanych sposobów pracy nad kodem. Podczas lektury kolejnych rozdzia ów prze-konasz si o tym, e instalacja i obs uga Dockera wcale nie s trudne. Korzystanie z niego jesto wiele atwiejsze od dbania o zgodno rodowisk nawet za pomoc mechanizmów automatyzacji.

AdministratorzyPrac administratora wykonywa em d u ej, ni powinienem, i z mojego do wiadczenia wyni-ka, e opisany ni ej problem pojawia si do regularnie.

ProblemZa ó my, e opiekujesz si pi cioma serwerami: trzy z nich to serwery sieciowe o do zrówno-wa onym obci aniu, a dwa pozosta e to serwery bazodanowe dzia aj ce w konfiguracji serwernadrz dny i serwer podrz dny, na których uruchomiona jest aplikacja 1. Stosem oprogramowania

Poleć książkęKup książkę

Page 12: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Docker. Programowanie aplikacji dla zaawansowanych

20

zarz dzasz automatycznie za pomoc narz dzia takiego jak Puppet lub Chef. Narz dzie to jestrównie u ywane do konfiguracji wszystkich pi ciu serwerów.

Wszystko dzia a o poprawnie, dopóki nie dosta e zadania wdro enia aplikacji 2 na tych sa-mych serwerach, na których dzia a aplikacja 1. To na pozór nic problematycznego. Mo eszzmodyfikowa konfiguracj narz dzia Puppet lub Chef w celu dodania nowych u ytkowni-ków i wirtualnych hostów oraz zaci gni cia nowego kodu, ale po chwili orientujesz si , eaplikacja 2 wymaga wy szej wersji oprogramowania od aplikacji 1.

Okazuje si , e aplikacja 1 nie chce wspó pracowa z nowym stosem oprogramowania, a apli-kacja 2 nie jest wstecznie kompatybilna.

Istnieje kilka tradycyjnych rozwi za tego problemu, ale adne z nich nie jest idealne: 1. Mo esz poprosi o dodatkowe serwery. Technicznie rzecz bior c, jest tonajbezpieczniejsze rozwi zanie, ale wi e si to z poniesieniem wydatkówna dodatkow infrastruktur .

2. Mo esz zmieni architektur aplikacji. Wyj cie jednego z serwerów sieciowychi bazodanowych b d cego kopi lub poprawiaj cego obci enia roboczei wdro enie na nim stosu aplikacji 2 mo e wydawa si równie dobrymrozwi zaniem. Jednak e sprawi ono, e aplikacja 2 b dzie podatna na awarie,a stabilno pracy aplikacji 1 mo e ulec pogorszeniu (prawdopodobniez jakiego powodu dzia a a ona na trzech serwerach sieciowych i dwóchserwerach bazodanowych).

3. Mo esz podj prób równoleg ej instalacji nowego stosu oprogramowania.Oczywi cie jest to mo liwe i mo e wydawa si dobrym tymczasowymrozwi zaniem umo liwiaj cym uruchomienie nowego projektu, ale wdro eniekrytycznej poprawki zabezpiecze którego ze stosów mo e by wtedy bardzok opotliwe.

Rozwi zanie problemu za pomoc DockeraZastosowanie Dockera to doskona e rozwi zanie tego problemu. Gdyby aplikacja 1 by a uru-chomiona na trzech serwerach w kontenerach, to móg by nawet zdublowa te kontenery, copozwoli oby na g adkie wdra anie nowych wersji tej aplikacji „w locie”, bez ograniczania jejdost pno ci.

Wdro enie aplikacji 2 w tym rodowisku sprowadza si po prostu do uruchomienia wi kszejliczby kontenerów w trzech hostach i skonfigurowania systemu równowa enia obci enia.Wdra aj c kontenery, nie musisz si przejmowa problemami wynikaj cymi z wdra ania,konfigurowania i zarz dzania dwiema wersjami tego samego stosu oprogramowania na tymsamym serwerze.

Dok adnie taki scenariusz opiszemy w rozdziale 6. „Docker Compose”.

Poleć książkęKup książkę

Page 13: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Rozdzia 1. • Docker — wprowadzenie

21

FirmyFirmy cierpi z powodu opisanych wcze niej problemów, poniewa zatrudniaj programistówi administratorów, ale problemy te w skali firmy wydaj si znacznie wi ksze i wi e si z nimiwi ksze ryzyko.

ProblemPrzerwa w dzia aniu aplikacji wi e si z poniesieniem kosztów finansowych, a tak e utratreputacji. Firmy musz wi c testowa ka de wdro enie przed jego udost pnieniem. W zwi zkuz tym nowe funkcje i poprawki s zawieszone z powodu:

Tworzenia i konfiguracji rodowisk testowych. Wdra ania aplikacji w nowych rodowiskach. Wykonywania zaplanowanych testów i poprawiania aplikacji i konfiguracji a

do poprawnego przej cia testów. Zmian i omawiania da modyfikacji aplikacji podczas wdra ania jej kodu

w rodowisku produkcyjnym.

Proces ten mo e trwa od kilku dni do tygodni, a nawet miesi cy. Zale y to od z o ono ciaplikacji i ryzyka wprowadzanego przez zmiany. Proces ten jest niezb dny do zapewnieniaci g o ci i dost pno ci na poziomie technologicznym, ale wi e si z potencjalnymi zagro e-niami natury biznesowej. Co, je eli konkurencja udost pni podobne lub, o zgrozo, identycznefunkcje przed Tob ?

Takie zdarzenie mo e mie tak samo negatywny wp yw na sprzeda i reputacj firmy jak udo-st pnienie nieprzetestowanego wdro enia.

Rozwi zanie problemu za pomoc DockeraZaczniemy od stwierdzenia, e Docker nie zwalnia z wykonywania opisanego wcze niej pro-cesu, ale jak ju pisali my, u atwia wykonywanie pracy w sposób ci g y. Dzi ki niemu pro-grami ci mog pracowa w tak samo skonfigurowanym kontenerze jak kontener wdro ony naprodukcji, co z pewno ci upro ci metodologi jego testowania.

Gdy np. programista aduje kod, który wed ug niego dzia a w jego lokalnym rodowisku ( ro-dowisku, w którym przeprowadzano prace programistyczne), to mo liwe jest takie skonfigu-rowanie narz dzia testuj cego, aby uruchomi o te same kontenery w celu przeprowadzeniaautomatycznego testu. Po zako czeniu testowania kontenery mog zosta usuni te w celuzwolnienia zasobów dla kolejnego zestawu testów. Technika ta sprawia, e proces testowaniai zwi zane z nim procedury s o wiele bardziej elastyczne i mo liwe staje si wielokrotne ko-rzystanie z tego samego rodowiska, co zwalnia z konieczno ci ponownego wdra ania lubodtwarzania serwerów z obrazów przed przeprowadzeniem kolejnego zestawu testów.

Poleć książkęKup książkę

Page 14: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Docker. Programowanie aplikacji dla zaawansowanych

22

Opisane rozwi zanie usprawnia proces wdra ania nowych aplikacji w rodowisku produkcyjnym.

Im szybciej zostanie on przeprowadzony, tym wcze niej b dziesz móg pewnie wprowadzinowe funkcje lub poprawki, nie daj c si wyprzedzi konkurencji.

Ró nice pomi dzy dedykowanymi hostami,maszynami wirtualnymi i DockeremOpisali my problemy, które Docker mia rozwi za . Teraz zajmiemy si opisem szczegó ówmechanizmu dzia ania tej platformy.

Docker to system zarz dzania, który u atwia obs ug kontenerów LXC (Linux Containers).Rozwi zanie to umo liwia tworzenie obrazów w rodowiskach wirtualnych na laptopach pro-gramistów i uruchamianie na nich polece . Docker umo liwia wykonywanie na kontenerachuruchomionych lokalnie tych samych operacji, które b d przeprowadzane w rodowiskuprodukcyjnym.

W zwi zku z tym nie ma konieczno ci robienia czego w sposób inny w rodowisku lokalnymi w rodowisku serwerowym. Porównajmy ró nice pomi dzy kontenerami Dockera i typowymirodowiskami maszyn wirtualnych.

Poni szy schemat przedstawia ró nice pomi dzy dedykowanym, fizycznym serwerem i ser-werem uruchomionym w maszynie wirtualnej:

Poleć książkęKup książkę

Page 15: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Rozdzia 1. • Docker — wprowadzenie

23

Jak widzisz, w przypadku dedykowanego serwera wszystkie trzy aplikacje wspó dziel ten samstos oprogramowania wyró niony kolorem pomara czowym. Maszyny wirtualne umo liwiajuruchomienie trzech aplikacji na dwóch zupe nie innych stosach oprogramowania. Na poni szymschemacie pokazano te same aplikacje (wyró nione kolorem pomara czowym i zielonym)uruchomione w kontenerach Dockera:

Schemat ten przedstawia najwi ksz zalet Dockera — brak potrzeby uruchamiania ca egonowego systemu operacyjnego podczas dodawania nowych kontenerów, co pozwala na zredu-kowanie ich rozmiaru. Docker korzysta z j dra systemu Linux hosta. Wi kszo wersji syste-mu Linux korzysta ze standardowych modeli j dra, a wi c Docker mo e dzia a w dystrybu-cjach takich jak Red Hat, CentOS i Ubuntu. W zwi zku z tym systemem hosta mo e byprawie ka da dystrybucja systemu Linux. Aplikacja w kontenerze jest traktowana tak, jakbysystem operacyjny nie by kompletny, a posiada tylko niezb dne pliki binarne, takie jak np.mened er pakietów, serwer Apache-PHP i biblioteki potrzebne do uruchomienia aplikacji.

W przypadku wcze niejszej ilustracji pomara czowa aplikacja mog a dzia a w dystrybucjiRed Hat, a zielona w dystrybucji Debian, ale adna z tych dystrybucji nie musia aby by sys-temem hosta. Kolejn zalet Dockera jest rozmiar obrazów. Obrazy nie musz zawiera du ychelementów, takich jak j dro systemu operacyjnego lub ca y system operacyjny. Dzi ki temu sone bardzo ma e i atwe do przesy ania.

Instalacja DockeraInstalator Dockera to pierwszy element tego ekosystemu, który nale y uruchomi w swoimlokalnym rodowisku, a tak e na serwerach. Oto lista rodowisk, w których mo na zainstalowaDockera:

Linux (ró ne dystrybucje); Apple macOS; Windows 10 Professional.

Poleć książkęKup książkę

Page 16: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Docker. Programowanie aplikacji dla zaawansowanych

24

Ponadto instalator Dockera mo e zosta uruchomiony w chmurze takiej jak np. Amazon WebServices, Microsoft Azure i DigitalOcean. Docker integruje si w ró ny sposób z systemamioperacyjnymi, dlatego dla ka dego systemu przewidziano inny instalator. Podstawowym ro-dowiskiem pracy Dockera jest Linux, a wi c je eli korzystasz z tego systemu, jego urucho-mienie nie b dzie stanowi o adnego problemu. Docker dzia a nieco inaczej w systemach macOSi Windows 10. Wynika to z tego, e korzysta on wewn trznie z rozwi za systemu Linux.

Przyjrzyjmy si procesowi instalacji Dockera na komputerze stacjonarnym pracuj cym podkontrol systemu Linux — Ubuntu 16.04, a nast pnie systemów macOS i Windows 10.

Instalacja w systemie Linux (Ubuntu 16.04)Zgodnie z tym, co wcze niej pisali my, instalacja Dockera w systemie Linux jest najprostsza.W celu zainstalowania Dockera uruchom poni sze polecenia w sesji Terminala:

$ curl -sSL https://get.docker.com/ | sh$ sudo systemctl start docker

Uruchomienie tych polece spowoduje pobranie, zainstalowanie i skonfigurowanie najnowszejwersji Dockera. Program zostanie pobrany bezpo rednio z serwera jego autorów. W momenciepisania tej ksi ki najnowsz wersj Dockera instalowan przez oficjalny skrypt jest 17.05.

W celu sprawdzenia poprawno ci instalacji i dzia ania Dockera uruchom polecenie:

$ docker version

W Terminalu powinien pojawi si komunikat podobny do nast puj cego:

W dalszej cz ci ksi ki b dziemy korzysta z dwóch narz dzi pomocniczych, które s auto-matycznie instalowane wraz z Dockerem w systemach macOS i Windows. Zainstaluj je teraz,dzi ki czemu nie b dziesz traci na to czasu pó niej. Pierwszym z tych narz dzi jest DockerMachine. W celu zainstalowania go uruchom poni sze polecenia:

Poleć książkęKup książkę

Page 17: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Rozdzia 1. • Docker — wprowadzenie

25

Aby sprawdzi , czy instalujesz najnowsz wersj narz dzia, wejd w sekcj z wersjami znajduj c si nastronie projektu w repozytorium GitHub — https://github.com/docker/machine/releases/. W celu zain-stalowania wersji innej ni v.0.13.0 po prostu umie inny numer wersji w poni szym poleceniu.

$ curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine &&

chmod +x /tmp/docker-machine && sudo cp /tmp/docker-machine /usr/local/bin/docker-machine

W celu pobrania i zainstalowania narz dzia Docker Compose uruchom poni sze polecenie.Tu równie sprawd , czy pobiera ono najnowsz wersj — wejd na stron https://github.com/docker/compose/releases/:

$ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose &&

chmod +x /usr/local/bin/docker-compose

Po poprawnym zainstalowaniu narz dzia mo na uruchomi nast puj ce polecenia:

$ docker-compose version$ docker-machine version

Instalacja w systemie macOSDocker w systemie macOS instalowany jest za pomoc graficznego instalatora.

Przed pobraniem instalatora upewnij si , e pracujesz w systemie Apple macOS Yosemite 10.10.3 lub now-szym. Je eli korzystasz ze starszej wersji tego systemu, to mo esz równie i w niej uruchomi Dockera— zajrzyj do sekcji „Starsze systemy operacyjne”.

Instalator mo esz pobra z serwisu Docker Store (https://store.docker.com/editions/community/docker-ce-desktop-mac/). Kliknij przycisk Get Docker (pobierz Dockera). Spowoduje to po-branie pliku DMG. Kliknij go dwukrotnie w celu zamontowania obrazu i uruchomienia go.Na ekranie Twojego komputera powinno pojawi si nast puj ce okno:

Poleć książkęKup książkę

Page 18: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Docker. Programowanie aplikacji dla zaawansowanych

26

Po przeci gni ciu ikony Dockera do folderu aplikacji kliknij j dwukrotnie. Zostaniesz zapytany,czy chcesz otworzy pobran aplikacj . Kliknij Tak, co uruchomi instalator:

Kliknij przycisk Next (dalej) i wykonuj instrukcje wy wietlane na ekranie. Po zainstalowaniui uruchomieniu Dockera jego ikona powinna pojawi si na belce widocznej w prawym gór-nym rogu ekranu. Klikni cie tej ikony i wybranie opcji About Docker (o Dockerze) spowodujewy wietlenie okna podobnego do poni szego:

Mo esz równie otworzy okno Terminala i uruchomi w nim to samo polecenie, z któregokorzystali my w systemie Linux:

$ docker version

Powinno ono spowodowa wy wietlenie informacji o Dockerze:

Poleć książkęKup książkę

Page 19: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Rozdzia 1. • Docker — wprowadzenie

27

Oto polecenia, dzi ki którym sprawdzisz wersje narz dzi Docker Compose i Docker Machinezainstalowanych wraz z silnikiem Docker Engine:

$ docker-compose version$ docker-machine version

Instalacja w systemie Windows 10 ProfessionalW systemie Windows, podobnie jak w systemie macOS, Docker jest instalowany równie zapomoc graficznego instalatora.

Przed pobraniem instalatora upewnij si , e pracujesz w 64-bitowej wersji systemu Microsoft Windows10 Professional lub Enterprise. Je eli korzystasz ze starszej wersji tego systemu lub nieobs ugiwanejwersji Windows 10, zajrzyj do sekcji „Starsze systemy operacyjne”.

Docker wymaga okre lonej wersji systemu Windows, poniewa korzysta z Hyper-V — hipernadzorcywbudowanego w system Windows, umo liwiaj cego uruchamianie aplikacji o architekturze x86-64.Mog to by aplikacje systemu Windows 10 Professional lub Windows Server. Wspomniany hipernad-zorca wchodzi nawet w sk ad systemu operacyjnego konsoli XBox One.

Instalator Dockera dla systemu Windows mo esz pobra z serwisu Docker Store https://store.docker.com/editions/community/docker-ce-desktop-windows/. Kliknij przycisk Get Docker (pobierzDockera) w celu pobrania instalatora. Po uruchomieniu instalatora Docker zostanie automa-tycznie rozpakowany i zainstalowany. Opcja uruchomienia hipernadzorcy pojawi si przypierwszym uruchomieniu Dockera.

Po zako czeniu procesu instalacji ikona Dockera pojawi si w zasobniku systemowym wy-wietlanym w prawym dolnym rogu ekranu. Kliknij j i wybierz opcj About Docker, co spo-

woduje wy wietlenie okna z informacjami o zainstalowanej wersji Dockera:

Poleć książkęKup książkę

Page 20: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Docker. Programowanie aplikacji dla zaawansowanych

28

Otwórz okno PowerShell i uruchom w nim polecenie:

$ docker version

W oknie pojawi si informacje podobne do tych, które by y wy wietlane w wersjach prze-znaczonych dla systemów Mac i Linux:

W systemie równie mo esz uruchomi nast puj ce polecenia:

$ docker-compose version$ docker-machine version

Starsze systemy operacyjneJe eli korzystasz ze starszej wersji systemu macOS lub Windows, to musisz skorzysta z na-rz dzia Docker Toolbox. By mo e zauwa y e , e po uruchomieniu polecenia:

$ docker version

w przypadku zaprezentowanych trzech instalacji wy wietlone zosta y informacje o dwóchwersjach: klienta i serwera. W przypadku instalacji w systemie Linux komunikat zawiera in-formacje o tym, e architektura klienta i serwera to Linux; w przypadku wersji zainstalowanejw systemie macOS komunikat informowa o tym, e klient dzia a na architekturze Darwin,czyli uniksowym j drze firmy Apple, a w systemie Windows klient dzia a na architekturzesystemu Windows, ale wszystkie serwery dzia aj wed ug komunikatu na architekturze systemuLinux. Jak to mo liwe?

Wynika to z tego, e wersje Dockera pracuj ce w systemach Windows i macOS pobieraji uruchamiaj w tle maszyn wirtualn , w której uruchomiony jest lekki system operacyjnyAlpine Linux. Maszyna ta korzysta z w asnych bibliotek Dockera, które cz si z wbudowa-nym hipernadzorc wybranego rodowiska. W przypadku systemu macOS jest to wbudowanymodu Hypervisor Framework (https://developer.apple.com/documentation/hypervisor), a w systemieWindows jest to Hyper-V (https://www.microsoft.com/en-gb/cloud-platform/server-virtualization).

Poleć książkęKup książkę

Page 21: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Rozdzia 1. • Docker — wprowadzenie

29

Istniej wersje Dockera przeznaczone dla starszych wersji systemów macOS i Windows. Niekorzystaj one z wbudowanych hipernadzorców. Zamiast nich u ywaj programu VirtualBoxw charakterze hipernadzorcy — lokalny klient czy si z uruchomionym w tym programieserwerem Linux.

VirtualBox to otwarte narz dzie wirtualizacyjne przeznaczone dla architektur x86 i AMD64/Intel64 opra-cowane przez firm Oracle. Dzia a ono w hostach Windows, Linux, Macintosh i Solaris. Obs uguje wielewirtualizowanych systemów operacyjnych z rodzin Linux, Unix i Windows. Wi cej informacji na tematprogramu VirtualBox znajdziesz na stronie https://www.virtualbox.org.

Wi cej informacji na temat projektu Docker Toolbox znajdziesz na stronie https://www.docker.com/get-docker, z której mo esz równie pobra programy instalacyjne systemów macOS i Windows.

W tej ksi ce zak adamy, e zainstalowa e najnowsz wersj Dockera w systemie Linux lub korzystaszz Dockera w wersji dla systemu macOS lub Windows. Co prawda instalacje wykonane przy u yciu na-rz dzia Docker Toolbox powinny obs ugiwa polecenia opisane w tej ksi ce, ale pracuj c w takiej in-stalacji, mo esz spotka si z problemami wynikaj cymi z braku uprawnie do plików podczas monto-wania w kontenerze danych z lokalnej maszyny.

Klient Dockera w wierszu polecePo zainstalowaniu Dockera czas przypomnie sobie jego najwa niejsze polecenia. Zaczniemyod tych, które s u ywane najcz ciej, przejdziemy do polece , które s u ywane podczas za-rz dzania obrazami, a na koniec zajmiemy si poleceniami dotycz cymi kontenerów.

Docker niedawno zmieni struktur klienta obs ugiwanego z poziomu wiersza polece . Polecenia zosta ypogrupowane w sposób bardziej logiczny. Zabieg ten wynika z szybkiego rozwijania si platformyi krzy owania polece . W tej ksi ce b dziemy korzysta z nowej struktury. Wi cej informacji na tematzmian wprowadzonych w kliencie obs ugiwanym za pomoc wiersza polece znajdziesz w artykulehttps://blog.docker.com/2017/01/whats-new-in-docker-1-13/.

Zaczniemy od najwa niejszego polecenia — tego wy wietlaj cego pomoc. W celu urucho-mienia pomocy uruchom polecenie:

$ docker help

Na ekranie pojawi si lista wszystkich dost pnych polece Dockera wraz z krótkimi opisamiich funkcji. W celu uzyskania bardziej szczegó owych informacji dotycz cych wybranego po-lecenia wpisz:

$ docker <POLECENIE> --help

Poleć książkęKup książkę

Page 22: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Docker. Programowanie aplikacji dla zaawansowanych

30

Teraz mo emy przyst pi do uruchomienia kontenera hello-world. Zróbmy to za pomocpolecenia (w zale no ci od konfiguracji systemu Linux mo e istnie konieczno poprzedze-nia polece instrukcj sudo):

$ docker container run hello-world

Niewa ne, na jakim ho cie uruchomiono Dockera. W systemach Linux, macOS i Windowszostan wykonane te same operacje — Docker pobierze obraz kontenera hello-world, uru-chomi go, a nast pnie zatrzyma po wykonaniu znajduj cego si w nim kodu.

W oknie Terminala powinny zosta wy wietlone nast puj ce komunikaty:

Zróbmy co ciekawszego. Spróbujmy pobra i uruchomi kontener NGINX. W tym celu na-le y uruchomi nast puj ce polecenia:

$ docker image pull nginx$ docker container run -d --name nginx-test -p 8080:80 nginx

Pierwsze polecenie pobiera obraz kontenera NGINX, a drugie uruchamia go w tle — tworzykontener ngnix-test na bazie pobranego obrazu ngnix. Drugie polecenie mapuje równieport 8080 hosta do portu 80 kontenera, dzi ki czemu mo na uzyska do niego dost p lokalnieza pomoc przegl darki internetowej (pod adresem http://localhost:8080/).

Polecenia te zadzia aj tak samo we wszystkich trzech systemach operacyjnych (o czym prze-konasz si , patrz c na trzy kolejne rysunki). Oto zrzut z systemu Linux:

Poleć książkęKup książkę

Page 23: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Rozdzia 1. • Docker — wprowadzenie

31

Oto zrzut z systemu macOS:

Poleć książkęKup książkę

Page 24: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Docker. Programowanie aplikacji dla zaawansowanych

32

A to zrzut z systemu Windows:

W kolejnych trzech rozdzia ach poszerzysz swoj wiedz dotycz c klienta obs ugiwanego zapomoc wiersza polece . Zatrzymaj i usu kontener nginx-test za pomoc polece :

$ docker container stop nginx-test$ docker container rm nginx-test

Ekosystem DockeraDocker poza do czonymi do niego narz dziami obs uguje równie wiele dodatkowychnarz dzi. Cz z nich opiszemy w kolejnych rozdzia ach. Na koniec pierwszego rozdzia uchcieli my stworzy zarys narz dzi, z których b dziemy korzysta . Najwa niejszym z nichjest Docker Engine.

To j dro Dockera. Korzystaj z niego wszystkie pozosta e opisane przez nas narz dzia. Korzy-stali my z niego w sekcjach zwi zanych z instalacj Dockera. Obecnie utrzymywane s dwiewersje silnika Docker Engine: Docker Enterprise Edition (Docker EE) i Docker CommunityEdition (CE). W tej ksi ce korzystamy z Dockera CE. Niedawno cykl wydawania nowychwersji silnika Docker Engine zosta zmieniony, dzi ki czemu jest bardziej przewidywalny.

Silniki Docker CE i EE maj stabilne wersje, które s aktualizowane co kwarta . Jak zapewnezauwa y e , w systemie macOS i Windows zainstalowali my Dockera w wersji CE v17.03.x.Istnieje jeszcze wersja Edge, w której nowe funkcje s wprowadzane co miesi c, ale lepiejnie korzysta z niej w rodowiskach produkcyjnych. W systemie Linux zainstalowali myDockera w wersji Edge CE 17.05.x. Oto inne elementy ekosystemu Dockera:

Poleć książkęKup książkę

Page 25: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Rozdzia 1. • Docker — wprowadzenie

33

Docker Compose to narz dzie pozwalaj ce na tworzenie i udost pnianiezespo ów kontenerów. Wi cej informacji na ten temat znajdziesz w rozdziale 6.„Docker Compose”.

Docker Machine to narz dzie przeznaczone do uruchamiania hostów Dockerana ró nych platformach. Wi cej informacji na ten temat znajdziesz w rozdziale 5.„Docker Machine”.

Docker Hub to repozytorium przeznaczone do przechowywania obrazów Dockera.Zagadnienia z nim zwi zane zostan poruszone w trzech kolejnych rozdzia ach.

Docker Store to serwis przeznaczony do pobierania oficjalnych obrazów i wtyczekDockera, a tak e innych licencjonowanych produktów. Zagadnienia zwi zane z tymtematem równie zostan poruszone w trzech kolejnych rozdzia ach.

Docker Swarm to narz dzie przeznaczone do orkiestracji mog ce pracowa z wielomahostami. Wi cej informacji na ten temat znajdziesz w rozdziale 7. „Docker Swarm”.

Docker dla systemu macOS. Zagadnienie to opisali my w tym rozdziale. Docker Cloud — platforma CaaS (kontener jako us uga) opisana jest szczegó owo

w rozdziale 10. „Us uga Docker Cloud”. Docker dla systemu Windows. Zagadnienie to opisali my w tym rozdziale. Docker dla us ug Amazon Web Services. Najlepsze praktyki instalacji narz dzia

Docker Swarm w kontek cie obs ugi us ug AWS opiszemy w rozdziale 10.„Us uga Docker Cloud”.

Docker dla Azure. Najlepsze praktyki instalacji narz dzia Docker Swarmw kontek cie obs ugi us ugi Azure opiszemy w rozdziale 10. „Us uga Docker Cloud”.

W kolejnych rozdzia ach przyjrzymy si równie wybranym us ugom niezale nych twórców.

PodsumowanieW tym rozdziale przedstawili my podstawowe zagadnienia, które s niezb dne podczas lek-tury kolejnych rozdzia ów. Dowiedzia e si , czym jest i jak dzia a Docker. Opisali my prze-bieg instalacji Dockera w ró nych systemach operacyjnych i obs ug podstawowych funkcjiDockera z poziomu wiersza polece . Pami taj o konieczno ci sprawdzenia wymaga przed uru-chomieniem instalatora — korzystaj z instalatora w a ciwego dla swojego systemu operacyjnego.

W dalszej cz ci tego rozdzia u opisali my podstawowe polecenia umo liwiaj ce rozpocz ciepracy z Dockerem. W kolejnych rozdzia ach opiszemy wszystkie polecenia s u ce do zarz dzaniakontenerami. Przedstawimy dzia anie poszczególnych polece , a tak e ich zastosowania. Podkoniec tego rozdzia u wymienili my narz dzia wchodz ce w sk ad ekosystemu Dockera.

W kolejnych rozdzia ach przyjrzymy si procesowi tworzenia bazowych kontenerów, opisze-my zagadnienia zwi zane z plikami Dockerfile, przechowywaniem obrazów, a tak e korzysta-niem ze zmiennych rodowiskowych i wolumenów Dockera.

Poleć książkęKup książkę

Page 26: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Docker. Programowanie aplikacji dla zaawansowanych

34

Poleć książkęKup książkę

Page 27: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Skorowidz

AADD, 38administratorzy, 19Amazon

EC2 Container Registry, 78Elastic Block Storage, 290Elastic Compute Cloud, 290Elastic Container Service, 290Web Services, 121, 227

analiza pliku Dockerfile, 37API, 304aplikacja

do g osowania, 139Docker Bench Security, 252Mobycounter, 133, 137NGINX, 50

architektury referencyjne, 293attach, 88Auto Scaling, 291automatyzacja budowy obrazu, 63AWS, Amazon Web Services, 121, 227

Bbezpiecze stwo, 262

kontenerów, 245platformy Docker, 245

budowanepliki kontenerów, 252obrazów, 42, 48

automatyzacja, 63Dockera, 42w asnych, 43

build, 148

Cchmura

DigitalOcean, 119, 128Docker Cloud, 223Google Cloud Storage, 74Microsoft Azure, 74VPC, 122

chmuryprywatne, 122uruchamianie hostów, 119

Clair, 263CMD, 40config, 148Consul, 295

dost pno , 304szablony narz dzia, 302uruchamianie narz dzia, 296us uga Registrator, 296zapytania, 297

COPY, 38CoreOS, 128create, 148

Ddegradacja w z a mened era, 165demon Dockera, 257diff, 249DigitalOcean, 119, 128, 226dobre praktyki, 250Docker, 17

Bench Security, 252analiza informacji, 255konfiguracja demona, 256konfiguracja hosta, 255

Poleć książkęKup książkę

Page 28: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Docker. Programowanie aplikacji dla zaawansowanych

312

Dockerobrazy kontenerów, 257operacje bezpiecze stwa, 260pliki konfiguracyjne demona, 257rodowisko robocze kontenerów, 258

uruchamianie narz dzia, 253Cloud, 33, 223

Amazon Web Services, 239czenie kont, 225

tryb Swarm, 238uruchamianie stosu, 234uruchamianie w z ów, 231zak adanie konta, 224

Community Edition, 32Compose, 33, 133

polecenia, 146uruchamianie aplikacji, 135

dla Azure, 33dla systemu macOS, 33dla systemu Windows, 33dla us ug Amazon Web Services, 33Engine, 32, 246Enterprise Edition, 32Hub, 33, 57

konfiguracja serwisu, 64menu Create, 60panel g ówny, 58profil, 61przycisk Explore, 59przycisk Organizations, 60strona Stars, 62ustawienia, 61

Machine, 33, 113uruchamianie hostów, 119wdra anie lokalnych hostów, 114

Registry, 71wdra anie rejestru, 72

Store, 33, 70Swarm, 33, 155

degradacja w z a mened era, 165do czanie wykonawców, 160drena w z a, 166instalacja, 156kasowanie klastra, 173listy w z ów, 161mened er Swarm, 157nak adki sieciowe, 175promowanie hosta, 164role, 156

równowa enie obci e , 174stosy, 168, 171tworzenie harmonogramu, 176tworzenie klastra, 158us ugi, 168wykonawca Swarm, 157zarz dzanie klastrem, 161

Trusted Registry, 74, 293do czanie wykonawców, 160down, 153drena w z a, 166dystrybucja obrazów, 57dzienniki, 91, 186

EEBS, 290EC2, 290ekosystem, 32ekran g ówny, 58Elastic Load Balancing, 290ELB, 290ENTRYPOINT, 40ENV, 41etcd, 304events, 149exec, 89, 151EXPOSE, 40

FFROM, 37

GGitHub, 76Grafana, 280, 282

Hharmonogram, 176Heroku, 289hosty

dedykowane, 22Dockera, 246, 291lokalne, 114robocze, 164uruchamianie, 119

Poleć książkęKup książkę

Page 29: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Skorowidz

313

Iinformacje

o obci eniu procesora, 186o pami ci, 186o po czeniach sieciowych, 186o procesach, 91

instalacja, 23Docker Swarm, 156Rancher, 202uwierzytelniania, 201w systemie Linux, 24w systemie macOS, 25w systemie Windows 10, 27

instalator Tectonic, 286interfejs Docker API, 304

Kkasowanie klastra Swarm, 173kill, 96, 153klaster, 161, 218, 292

Swarm, 173, 195tworzenie, 192

klient Dockera, 29komunikacja klastra, 293konfiguracja

demona Dockera, 251, 256hosta, 251, 255serwisu Docker Hub, 64uwierzytelniania, 201, 204

kontenery, 35, 44, 183bezpiecze stwo, 245komunikacja, 88podgl d w a ciwo ci, 216polecenia, 84, 95stany, 95usuwanie, 97zarz dzanie, 83

LLABEL, 37Linux Containers, 22listy w z ów, 161logs, 91, 149

adowanie w asnych obrazów, 68

Mmaszyna wirtualna, 22

WirtualBox, 130mened er Swarm, 157menu Create, 60Microbadger, 79mieszanie procesów, 291Moby Project, 306Mobycounter, 137monitorowanie, 277

narz dzia, 285

Nnak adki sieciowe, 175narz dzia do monitorowania, 285narz dzie

cadvisor, 279Consul, 296Docker Bench Security, 252Docker Machine, 113etcd, 304Grafana, 280, 282Microbadger, 79node-exporter, 279Portainer, 177Rancher, 201WP-CLI, 274

Oobci enia wej ciowe, 174obrazy, 187, 252

Dockera, 42dystrybucja, 57kontenerów, 35, 257przechowywanie, 57rejestry, 293zaufane ród a, 247

obs ugaklastrów, 292kontenerów, 84kontenerów LXC, 22sieci, 100wolumenów, 100

Poleć książkęKup książkę

Page 30: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Docker. Programowanie aplikacji dla zaawansowanych

314

ograniczenia zasobów, 93ONBUILD, 41operacje bezpiecze stwa, 252, 260organizacja Center for Internet Security, 251

Ppanel g ówny, 58pause, 96, 149platforma Heroku, 289plik

.dockerignore, 43Dockerfile, 35

analiza, 37budowa obrazu, 42dobre praktyki, 41polecenia, 37, 40zmienne rodowiskowe, 50

YAML, 137pliki konfiguracyjne demona Dockera, 251, 257podgl d w a ciwo ci, 216polecenia

Docker Compose, 146Dockera, 247obs uga kontenerów, 84pliku Dockerfile, 40

polecenieADD, 38attach, 88build, 148CMD, 40config, 148COPY, 38create, 148diff, 249docker build, 42down, 153ENTRYPOINT, 40ENV, 41events, 149exec, 89, 151EXPOSE, 40FROM, 37kill, 96, 153LABEL, 37logs, 91, 149ONBUILD, 41pause, 96, 149prune, 97

ps, 147pull, 148restar, 96restart, 149rm, 98, 153run, 38, 151, 247scale, 152service, 168start, 96, 149stats, 93stop, 96, 149top, 92, 149unpause, 96, 149up, 147USER, 41WORKDIR, 41

Portainer, 177Docker, 191dzienniki, 186konsola, 187kontenery, 183obrazy, 187panel g ówny, 181sieci, 190statystyki, 186stosowanie, 180szablony aplikacji, 181uruchamianie, 178us ugi, 193, 196w z y ko cowe, 198wolumeny, 190zdarzenia, 190

prace programistyczne, 265profil, 61projekt Moby Project, 306przechowywanie obrazów, 57przep yw zada , 265przycisk

Explore, 59Organizations, 60

PS, 147pull, 148

QQuay, 75, 262

Poleć książkęKup książkę

Page 31: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Skorowidz

315

RRancher, 201

instalacja, 202katalog, 217konfiguracja uwierzytelniania, 204tworzenie stada, 207uruchamianie stosów, 209usuwanie stada, 217

RancherOS, 130Registrator, 296rejestr

Amazon EC2 Container Registry, 78Docker Registry, 71Docker Trusted Registry, 74

rejestryniezale ne, 75obrazów, 293

repozytorium, 63Docker Hub, 57GitHub, 76

restar, 96restart, 149rm, 153role Docker Swarm, 156rozszerzenie Weave Net, 124run, 38, 151, 247

Sscale, 152serwis

Docker, 58Docker Hub, 57Docker Store, 70

sieci, 100, 190silnik Consul, 295skanowanie zabezpiecze Dockera, 260stany kontenerów, 95start, 96, 149stats, 93stop, 96, 149stos, 171, 209, 210, 234stosy Docker Swarm, 168strona Stars, 62Swift, 74system

CoreOS, 128Kubernetes, 286

plików, 74RancherOS, 130

szablonyaplikacji, 181narz dzia Consul, 302

rodowiskoprodukcyjne, 291robocze kontenerów, 252, 258wykonawcze, 252

TTectonic, 286top, 92, 149tryb Swarm, 238tworzenie

harmonogramu, 176klastra, 158, 192obrazów kontenerów, 35stada, 207

Uunpause, 96, 149up, 147uruchamianie

aplikacji, 135hostów, 119narz dzia Consul, 296stosów, 209, 234us ugi Registrator, 296w z ów, 231

USER, 41us uga, 196

Amazon Elastic Container Service, 290Amazon S3, 74Docker Cloud, 223Docker Swarm, 168Portainer, 193Quay, 75Registrator, 296

ustawienia, 61usuwanie

kontenerów, 97stada, 217

uwierzytelnianie, 201, 204

Poleć książkęKup książkę

Page 32: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy

Docker. Programowanie aplikacji dla zaawansowanych

316

VVPC, Virtual Private Cloud, 122, 291

Wwdra anie

lokalnych hostów, 114rejestru, 72

w z yko cowe, 198mened era, 165uruchamianie, 231

wiersz polece , 29WirtualBox, 130w a ciwo ci kontenerów, 216wolumeny, 107, 190WORKDIR, 41wykonawca Swarm, 157wykrywanie us ug, 295

Zzabezpieczenia Dockera, 260zarz dzanie

klastrem, 161kontenerami, 83

zasoby, 93zaufane ród a obrazów, 247zdarzenia, 190zewn trzne platformy, 286zmienne rodowiskowe, 50

ród a obrazów, 247

dania do kontenerów, 292danie SIGTERM, 96

Poleć książkęKup książkę

Page 34: Tytuł oryginału: Mastering Docker - Second Edition · Rozdziaï 1. Docker — wprowadzenie 17 Czym jest Docker? 17 Programi ci 18 Administratorzy 19 Firmy 21 Ró nice pomiÚdzy