Docker - szybki przewodnik

Docker to usługa zarządzania kontenerami. Słowa kluczowe Dockera todevelop, ship i rungdziekolwiek. Cała idea Dockera polega na tym, aby programiści mogli łatwo tworzyć aplikacje, wysyłać je do kontenerów, które można następnie wdrożyć w dowolnym miejscu.

Pierwsze wydanie Dockera miało miejsce w marcu 2013 roku i od tego czasu stało się modnym hasłem dla współczesnego rozwoju świata, szczególnie w obliczu projektów opartych na Agile.

Funkcje Dockera

  • Docker ma możliwość zmniejszenia rozmiaru oprogramowania, zapewniając mniejszy ślad systemu operacyjnego za pośrednictwem kontenerów.

  • Dzięki kontenerom zespołom działającym w różnych jednostkach, takich jak programowanie, kontrola jakości i operacje, łatwiej jest płynnie pracować w różnych aplikacjach.

  • Możesz wdrażać kontenery Docker w dowolnym miejscu, na dowolnych maszynach fizycznych i wirtualnych, a nawet w chmurze.

  • Ponieważ kontenery Docker są dość lekkie, są bardzo łatwe do skalowania.

Składniki Dockera

Docker zawiera następujące składniki

  • Docker for Mac - Pozwala na uruchamianie kontenerów Docker w systemie Mac OS.

  • Docker for Linux - Pozwala na uruchamianie kontenerów Docker w systemie operacyjnym Linux.

  • Docker for Windows - Pozwala na uruchamianie kontenerów Dockera w systemie operacyjnym Windows.

  • Docker Engine - Służy do budowania obrazów Dockera i tworzenia kontenerów Docker.

  • Docker Hub - To jest rejestr, który jest używany do hostowania różnych obrazów Dockera.

  • Docker Compose - Służy do definiowania aplikacji korzystających z wielu kontenerów Docker.

W kolejnych rozdziałach szczegółowo omówimy wszystkie te elementy.

Oficjalna strona Dockera to https://www.docker.com/Witryna zawiera wszystkie informacje i dokumentację dotyczącą oprogramowania Docker. Zawiera również łącza pobierania dla różnych systemów operacyjnych.

Aby rozpocząć instalację Dockera, użyjemy instancji Ubuntu. Możesz użyć Oracle Virtual Box do skonfigurowania wirtualnej instancji Linuksa, jeśli jeszcze jej nie masz.

Poniższy zrzut ekranu przedstawia prosty serwer Ubuntu, który został zainstalowany na Oracle Virtual Box. Istnieje użytkownik systemu operacyjnego o nazwiedemo który został zdefiniowany w systemie z pełnym dostępem roota do serwera.

Aby zainstalować Dockera, musimy postępować zgodnie z instrukcjami podanymi poniżej.

Step 1- Przed zainstalowaniem Dockera musisz najpierw upewnić się, że masz uruchomioną odpowiednią wersję jądra Linuksa. Docker jest przeznaczony tylko do pracy z jądrem Linux w wersji 3.8 i nowszych. Możemy to zrobić, uruchamiając następujące polecenie.

uname

Ta metoda zwraca informacje systemowe o systemie Linux.

Składnia

uname -a

Opcje

a - Służy do zapewnienia zwrócenia informacji o systemie.

Wartość zwracana

Ta metoda zwraca następujące informacje w systemie Linux -

  • nazwa jądra
  • nazwa węzła
  • wydanie jądra
  • wersja jądra
  • machine
  • processor
  • platforma sprzętowa
  • system operacyjny

Przykład

uname –a

Wynik

Kiedy uruchomimy powyższe polecenie, otrzymamy następujący wynik -

Na podstawie wyników widać, że wersja jądra Linuksa to 4.2.0-27, czyli wyższa niż wersja 3.8, więc możemy zaczynać.

Step 2 - Musisz zaktualizować system operacyjny o najnowsze pakiety, co można zrobić za pomocą następującego polecenia -

apt-get

Ta metoda instaluje pakiety z Internetu w systemie Linux.

Składnia

sudo apt-get update

Opcje

  • sudo - The sudo polecenie jest używane w celu zapewnienia, że ​​polecenie działa z dostępem użytkownika root.

  • update - The update jest używana, upewnij się, że wszystkie pakiety są zaktualizowane w systemie Linux.

Wartość zwracana

Żaden

Przykład

sudo apt-get update

Wynik

Po uruchomieniu powyższego polecenia otrzymamy następujący wynik -

To polecenie połączy się z Internetem i pobierze najnowsze pakiety systemowe dla Ubuntu.

Step 3- Następnym krokiem jest zainstalowanie niezbędnych certyfikatów, które będą wymagane do późniejszej pracy z witryną Docker w celu pobrania niezbędnych pakietów Docker. Można to zrobić za pomocą następującego polecenia.

sudo apt-get install apt-transport-https ca-certificates

Step 4- Następnym krokiem jest dodanie nowego klucza GPG. Ten klucz jest wymagany do zapewnienia szyfrowania wszystkich danych podczas pobierania niezbędnych pakietów dla platformy Docker.

Następujące polecenie pobierze klucz o identyfikatorze 58118E89F3A912897C070ADBF76221572C52609D z keyserver hkp: //ha.pool.sks-keyservers.net: 80 i dodaje go do advbrelok do kluczy. Należy pamiętać, że ten konkretny klucz jest wymagany do pobrania niezbędnych pakietów Dockera.

Step 5 - Następnie, w zależności od posiadanej wersji Ubuntu, musisz dodać odpowiednią witrynę do pliku docker.list dla apt package manager, dzięki czemu będzie mógł wykryć pakiety Dockera z witryny Docker i odpowiednio je pobrać.

  • Precyzyjne 12.04 (LTS) ─ deb https://apt.dockerproject.org/repoUbuntu-precyzyjne main

  • Trusty 14.04 (LTS) ─ deb https://apt.dockerproject.org/repo/ plik main

  • Wily 15,10 ─ deb https://apt.dockerproject.org/repo ubuntu-wily main

  • Xenial 16.04 (LTS) - https://apt.dockerproject.org/repo ubuntu-xenial main

Ponieważ naszym systemem operacyjnym jest Ubuntu 14.04, będziemy używać nazwy repozytorium jako „deb https://apt.dockerproject.org/repogłówny zaufany ubuntu ”.

Następnie będziemy musieli dodać to repozytorium do pliku docker.list jak wspomniano powyżej.

echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main” 
   | sudo tee /etc/apt/sources.list.d/docker.list

Step 6 - Następnie wydajemy plik apt-get update command aby zaktualizować pakiety w systemie Ubuntu.

Step 7 - Jeśli chcesz sprawdzić, czy menedżer pakietów wskazuje właściwe repozytorium, możesz to zrobić, wydając plik apt-cache command.

apt-cache policy docker-engine

W danych wyjściowych otrzymasz link do https://apt.dockerproject.org/repo/

Step 8 - Wydaj apt-get update command aby upewnić się, że wszystkie pakiety w systemie lokalnym są aktualne.

Step 9 - W przypadku Ubuntu Trusty, Wily i Xenial musimy zainstalować pakiety jądra linux-image-extra- *, które pozwalają na użycie aufs storage driver. Ten sterownik jest używany przez nowsze wersje platformy Docker.

Można to zrobić za pomocą następującego polecenia.

sudo apt-get install linux-image-extra-$(uname -r) 
   linux-image-extra-virtual

Step 10 - Ostatnim krokiem jest instalacja Dockera i możemy to zrobić za pomocą następującego polecenia -

sudo apt-get install –y docker-engine

Tutaj, apt-get używa opcji instalacji, aby pobrać obraz aparatu Docker z witryny sieci Web platformy Docker i zainstalować platformę Docker.

Silnik Dockera to oficjalny pakiet firmy Docker Corporation dla systemów opartych na Ubuntu.

W następnej sekcji zobaczymy, jak sprawdzić, która wersja Dockera została zainstalowana.

Wersja platformy Docker

Aby zobaczyć uruchomioną wersję Dockera, możesz wydać następujące polecenie -

Składnia

docker version

Opcje

  • version - Służy do zapewnienia, że ​​polecenie Docker zwraca zainstalowaną wersję platformy Docker.

Wartość zwracana

Dane wyjściowe będą zawierać różne szczegóły wersji platformy Docker zainstalowanej w systemie.

Przykład

sudo docker version

Wynik

Po uruchomieniu powyższego programu otrzymamy następujący wynik -

Informacje o platformie Docker

Aby zobaczyć więcej informacji na temat Dockera działającego w systemie, możesz wydać następujące polecenie -

Składnia

docker info

Opcje

  • info - Służy do zapewnienia, że ​​polecenie Docker zwraca szczegółowe informacje o zainstalowanej usłudze Docker.

Wartość zwracana

Dane wyjściowe będą zawierać różne szczegóły Dockera zainstalowanego w systemie, takie jak -

  • Liczba kontenerów
  • Liczba zdjęć
  • Sterownik magazynu używany przez platformę Docker
  • Katalog główny używany przez Docker
  • Sterownik wykonawczy używany przez platformę Docker

Przykład

sudo docker info

Wynik

Po uruchomieniu powyższego polecenia otrzymamy następujący wynik -

Docker dla Windows

Docker ma gotową obsługę systemu Windows, ale aby zainstalować Docker dla Windows, musisz mieć następującą konfigurację.

wymagania systemowe

System operacyjny Windows Windows 10 w wersji 64-bitowej
Pamięć 2 GB RAM (zalecane)

Możesz pobrać Docker dla Windows z - https://docs.docker.com/docker-for-windows/

Docker ToolBox

Docker ToolBox został zaprojektowany dla starszych wersji Windows, takich jak Windows 8.1 i Windows 7. Aby zainstalować Docker dla Windows, musisz mieć następującą konfigurację.

wymagania systemowe

System operacyjny Windows Windows 7, 8, 8.1
Pamięć 2 GB RAM (zalecane)
Wirtualizacja To powinno być włączone.

Możesz pobrać Docker ToolBox z - https://www.docker.com/products/docker-toolbox

Przejdźmy przez instalację każdego produktu.

Docker dla Windows

Po pobraniu instalatora kliknij go dwukrotnie, aby uruchomić instalator, a następnie postępuj zgodnie z instrukcjami podanymi poniżej.

Step 1 - Kliknij warunki umowy, a następnie przycisk Instaluj, aby kontynuować instalację.

Step 2 - Po zakończeniu kliknij przycisk Zakończ, aby zakończyć instalację.

Docker ToolBox

Po pobraniu instalatora kliknij go dwukrotnie, aby uruchomić instalator, a następnie postępuj zgodnie z instrukcjami podanymi poniżej.

Step 1 - Kliknij przycisk Dalej na ekranie startowym.

Step 2 - Zachowaj domyślną lokalizację na następnym ekranie i kliknij przycisk Dalej.

Step 3 - Zachowaj domyślne komponenty i kliknij przycisk Dalej, aby kontynuować.

Step 4 - Zachowaj dodatkowe zadania bez zmian, a następnie kliknij przycisk Dalej.

Step 5 - Na ostatnim ekranie kliknij przycisk Instaluj.

Praca z Docker Toolbox

Przyjrzyjmy się teraz, jak Docker Toolbox może być używany do pracy z kontenerami Docker w systemie Windows. Pierwszym krokiem jest uruchomienie aplikacji Docker Toolbox, do której skrót jest tworzony na pulpicie podczas instalacji przybornika Docker.

Następnie zobaczysz konfigurację przeprowadzaną po uruchomieniu przybornika Docker.

Po zakończeniu zobaczysz skonfigurowany i uruchomiony Docker. Otrzymasz interaktywną powłokę dla Dockera.

Aby sprawdzić, czy Docker działa poprawnie, możemy użyć Dockera run command pobrać i uruchomić prosty plik HelloWorld Docker container.

Działanie Dockera run command podano poniżej -

docker run

To polecenie służy do uruchamiania polecenia w kontenerze platformy Docker.

Składnia

docker run image

Opcje

  • Image - To jest nazwa obrazu, który jest używany do uruchamiania kontenera.

Wartość zwracana

Dane wyjściowe uruchomią polecenie w żądanym kontenerze.

Przykład

sudo docker run hello-world

To polecenie pobierze plik hello-world image, jeśli nie jest jeszcze obecny, i uruchom plik hello-world jako pojemnik.

Wynik

Po uruchomieniu powyższego polecenia otrzymamy następujący wynik -

Jeśli chcesz uruchomić system operacyjny Ubuntu w systemie Windows, możesz pobrać obraz Ubuntu za pomocą następującego polecenia -

Docker run –it ubuntu bash

Tutaj mówisz Dockerowi, aby uruchomił polecenie w trybie interaktywnym za pośrednictwem –it opcja.

W danych wyjściowych widać, że obraz Ubuntu jest pobierany i uruchamiany, a następnie zostaniesz zalogowany jako użytkownik root w kontenerze Ubuntu.

Docker Hub to usługa rejestru w chmurze, która umożliwia pobieranie obrazów platformy Docker utworzonych przez inne społeczności. Możesz również przesłać własne obrazy utworzone przez platformę Docker do centrum Docker. W tym rozdziale zobaczymy, jak pobrać i używać obrazu Jenkins Docker z centrum Docker.

Oficjalna witryna Docker Hub to - https://www.docker.com/community-edition#/add_ons

Step 1 - Najpierw musisz dokonać prostej rejestracji w centrum Docker.

Step 2 - Po zarejestrowaniu się zostaniesz zalogowany do Docker Hub.

Step 3 - Następnie przejrzyjmy i znajdź obraz Jenkinsa.

Step 4 - Jeśli przewiniesz w dół na tej samej stronie, zobaczysz Docker pullKomenda. Zostanie to wykorzystane do pobrania obrazu Jenkins na lokalny serwer Ubuntu.

Step 5 - Teraz przejdź do serwera Ubuntu i uruchom następujące polecenie -

sudo docker pull jenkins

Aby uruchomić Jenkins, musisz uruchomić następujące polecenie -

sudo docker run -p 8080:8080 -p 50000:50000 jenkins

Zwróć uwagę na następujące punkty dotyczące powyższego sudo polecenie -

  • Używamy sudo polecenie, aby upewnić się, że działa z dostępem roota.

  • Tutaj, jenkins to nazwa obrazu, który chcemy pobrać z centrum Docker i zainstalować na naszej maszynie Ubuntu.

  • -p służy do mapowania numeru portu wewnętrznego obrazu Dockera na nasz główny serwer Ubuntu, abyśmy mogli odpowiednio uzyskać dostęp do kontenera.

Wtedy Jenkins będzie działał pomyślnie jako kontener na maszynie Ubuntu.

W Dockerze wszystko opiera się na obrazach. Obraz to połączenie systemu plików i parametrów. Weźmy przykład następującego polecenia w Dockerze.

docker run hello-world
  • Polecenie Docker jest specyficzne i informuje program Docker w systemie operacyjnym, że trzeba coś zrobić.

  • Plik run polecenie jest używane do wzmianki, że chcemy utworzyć instancję obrazu, która jest następnie nazywana container.

  • Wreszcie „hello-world” reprezentuje obraz, z którego wykonany jest kontener.

Teraz przyjrzyjmy się, jak możemy użyć obrazu CentOS dostępnego w Docker Hub, aby uruchomić CentOS na naszej maszynie Ubuntu. Możemy to zrobić, wykonując następujące polecenie na naszej maszynie Ubuntu -

sudo docker run centos –it /bin/bash

Zwróć uwagę na następujące punkty dotyczące powyższego sudo polecenie -

  • Używamy sudo polecenie, aby upewnić się, że działa z root dostęp.

  • Tutaj, centos to nazwa obrazu, który chcemy pobrać z Docker Hub i zainstalować na naszej maszynie Ubuntu.

  • ─it wspomina się, że chcemy w to wkroczyć interactive mode.

  • /bin/bash służy do uruchamiania powłoki bash, gdy CentOS jest już uruchomiony.

Wyświetlanie obrazów platformy Docker

Aby wyświetlić listę obrazów Dockera w systemie, możesz wydać następujące polecenie.

docker images

To polecenie służy do wyświetlania wszystkich obrazów aktualnie zainstalowanych w systemie.

Składnia

docker images

Opcje

Żaden

Wartość zwracana

Dane wyjściowe dostarczą listę obrazów w systemie.

Przykład

sudo docker images

Wynik

Uruchomienie powyższego polecenia da następujący wynik -

Z powyższego wyniku widać, że serwer ma trzy obrazy: centos, newcentos, i jenkins. Każdy obraz ma następujące atrybuty -

  • TAG - Służy do logicznego oznaczania obrazów.

  • Image ID - Służy do jednoznacznej identyfikacji obrazu.

  • Created - liczba dni od utworzenia obrazu.

  • Virtual Size - Rozmiar obrazu.

Pobieranie obrazów platformy Docker

Obrazy można pobrać z Docker Hub za pomocą Docker runKomenda. Zobaczmy szczegółowo, jak możemy to zrobić.

Składnia

Poniższa składnia służy do uruchamiania polecenia w kontenerze platformy Docker.

docker run image

Opcje

  • Image - To jest nazwa obrazu, który jest używany do uruchamiania kontenera.

Wartość zwracana

Dane wyjściowe uruchomią polecenie w żądanym kontenerze.

Przykład

sudo docker run centos

To polecenie pobierze plik centos obraz, jeśli nie jest już obecny, i uruchom system operacyjny jako kontener.

Wynik

Po uruchomieniu powyższego polecenia otrzymamy następujący wynik -

Zobaczysz teraz pobrany obraz CentOS Docker. Teraz, jeśli uruchomimy Dockerimages polecenie, aby wyświetlić listę obrazów w systemie, powinniśmy być w stanie zobaczyć plik centos obraz również.

Usuwanie obrazów platformy Docker

Obrazy platformy Docker w systemie można usunąć za pomocą docker rmiKomenda. Przyjrzyjmy się temu poleceniu bardziej szczegółowo.

docker rmi

To polecenie służy do usuwania obrazów platformy Docker.

Składnia

docker rmi ImageID

Opcje

  • ImageID - To jest identyfikator obrazu, który należy usunąć.

Wartość zwracana

Dane wyjściowe zapewniają identyfikator obrazu usuniętego obrazu.

Przykład

sudo docker rmi 7a86f8ffcb25

Tutaj, 7a86f8ffcb25 to identyfikator obrazu newcentos wizerunek.

Wynik

Uruchomienie powyższego polecenia da następujący wynik -

Zobaczmy więcej poleceń Dockera na obrazach.

obrazy docker -q

To polecenie służy do zwracania tylko identyfikatorów obrazów.

Składnia

docker images

Opcje

  • q - Mówi komendzie Dockera, aby zwróciła tylko identyfikator obrazu.

Wartość zwracana

Dane wyjściowe będą zawierać tylko identyfikatory obrazów obrazów na hoście platformy Docker.

Przykład

sudo docker images -q

Wynik

Uruchomienie powyższego polecenia da następujący wynik -

docker inspect

To polecenie służy do wyświetlania szczegółów obrazu lub kontenera.

Składnia

docker inspect Repository

Opcje

  • Repository - To jest nazwa obrazu.

Wartość zwracana

Dane wyjściowe pokażą szczegółowe informacje o obrazie.

Przykład

sudo docker inspect jenkins

Wynik

Uruchomienie powyższego polecenia da następujący wynik -

Kontenery to wystąpienia obrazów platformy Docker, które można uruchomić za pomocą polecenia uruchamiania platformy Docker. Podstawowym celem Dockera jest uruchamianie kontenerów. Omówmy, jak pracować z kontenerami.

Prowadzenie kontenera

Uruchomieniem kontenerów zarządza Docker runKomenda. Aby uruchomić kontener w trybie interaktywnym, najpierw uruchom kontener Docker.

sudo docker run –it centos /bin/bash

Następnie naciśnij Crtl + p, a wrócisz do powłoki systemu operacyjnego.

Będziesz wtedy działać w instancji systemu CentOS na serwerze Ubuntu.

Lista kontenerów

Można wyświetlić listę wszystkich kontenerów na maszynie za pomocą docker psKomenda. To polecenie służy do zwracania aktualnie uruchomionych kontenerów.

docker ps

Składnia

docker ps

Opcje

Żaden

Wartość zwracana

Dane wyjściowe pokażą aktualnie uruchomione kontenery.

Przykład

sudo docker ps

Wynik

Uruchomienie powyższego polecenia da następujący wynik -

Zobaczmy więcej odmian docker ps Komenda.

docker ps -a

To polecenie służy do wyświetlania listy wszystkich kontenerów w systemie

Składnia

docker ps -a

Opcje

  • ─a - Mówi docker ps polecenie, aby wyświetlić wszystkie kontenery w systemie.

Wartość zwracana

Dane wyjściowe pokażą wszystkie kontenery.

Przykład

sudo docker ps -a

Wynik

Uruchomienie powyższego polecenia da następujący wynik -

historia platformy Docker

Za pomocą tego polecenia można zobaczyć wszystkie polecenia, które zostały uruchomione z obrazem za pośrednictwem kontenera.

Składnia

docker history ImageID

Opcje

  • ImageID - To jest identyfikator obrazu, dla którego chcesz zobaczyć wszystkie polecenia, które zostały uruchomione.

Wartość zwracana

Dane wyjściowe pokażą wszystkie polecenia uruchomione na tym obrazie.

Przykład

sudo docker history centos

Powyższe polecenie pokaże wszystkie polecenia, które zostały uruchomione przeciwko centos wizerunek.

Wynik

Uruchomienie powyższego polecenia da następujący wynik -

W tym rozdziale szczegółowo zbadamy, co możemy zrobić z kontenerami.

góra dokowana

Za pomocą tego polecenia możesz zobaczyć najważniejsze procesy w kontenerze.

Składnia

docker top ContainerID

Opcje

  • ContainerID - To jest identyfikator kontenera, dla którego chcesz zobaczyć najważniejsze procesy.

Wartość zwracana

Dane wyjściowe pokażą procesy najwyższego poziomu w kontenerze.

Przykład

sudo docker top 9f215ed0b0d3

Powyższe polecenie pokaże procesy najwyższego poziomu w kontenerze.

Wynik

Uruchomienie powyższego polecenia da następujący wynik -

przystanek docker

To polecenie służy do zatrzymania działającego kontenera.

Składnia

docker stop ContainerID

Opcje

  • ContainerID - To jest identyfikator kontenera, który należy zatrzymać.

Wartość zwracana

Dane wyjściowe podają identyfikator zatrzymanego kontenera.

Przykład

sudo docker stop 9f215ed0b0d3

Powyższe polecenie zatrzyma kontener Docker 9f215ed0b0d3.

Wynik

Uruchomienie powyższego polecenia da następujący wynik -

docker rm

To polecenie służy do usuwania kontenera.

Składnia

docker rm ContainerID

Opcje

  • ContainerID - To jest identyfikator kontenera, który należy usunąć.

Wartość zwracana

Dane wyjściowe podają identyfikator usuniętego kontenera.

Przykład

sudo docker rm 9f215ed0b0d3

Powyższe polecenie usunie kontener Docker 9f215ed0b0d3.

Wynik

Uruchomienie powyższego polecenia da następujący wynik -

statystyki dockera

To polecenie służy do dostarczania statystyk uruchomionego kontenera.

Składnia

docker stats ContainerID

Opcje

  • ContainerID - To jest identyfikator kontenera, dla którego należy podać statystyki.

Wartość zwracana

Dane wyjściowe pokażą wykorzystanie procesora i pamięci kontenera.

Przykład

sudo docker stats 9f215ed0b0d3

Powyższe polecenie zapewni wykorzystanie procesora i pamięci kontenera 9f215ed0b0d3.

Wynik

Uruchomienie powyższego polecenia da następujący wynik -

Docker Attach

To polecenie służy do dołączania do działającego kontenera.

Składnia

docker attach ContainerID

Opcje

  • ContainerID - To jest identyfikator kontenera, do którego należy dołączyć.

Wartość zwracana

Żaden

Przykład

sudo docker attach 07b0b6f434fe

Powyższe polecenie zostanie dołączone do kontenera Docker 07b0b6f434fe.

Wynik

Uruchomienie powyższego polecenia da następujący wynik -

Po podłączeniu do kontenera Docker możesz uruchomić powyższe polecenie, aby zobaczyć wykorzystanie procesu w tym kontenerze Docker.

Docker Pauza

To polecenie służy do wstrzymywania procesów w uruchomionym kontenerze.

Składnia

docker pause ContainerID

Opcje

  • ContainerID - To jest identyfikator kontenera, do którego należy wstrzymać procesy w kontenerze.

Wartość zwracana

ContainerID wstrzymanego kontenera.

Przykład

sudo docker pause 07b0b6f434fe

Powyższe polecenie wstrzyma procesy w uruchomionym kontenerze 07b0b6f434fe.

Wynik

Uruchomienie powyższego polecenia da następujący wynik -

docker unpause

To polecenie służy do unpause procesy w działającym kontenerze.

Składnia

docker unpause ContainerID

Opcje

  • ContainerID - To jest identyfikator kontenera, do którego należy wznowić procesy w kontenerze.

Wartość zwracana

Identyfikator kontenera działającego kontenera.

Przykład

sudo docker unpause 07b0b6f434fe

Powyższe polecenie spowoduje wznowienie procesów w uruchomionym kontenerze: 07b0b6f434fe

Wynik

Uruchomienie powyższego polecenia da następujący wynik -

docker kill

To polecenie służy do zabijania procesów w działającym kontenerze.

Składnia

docker kill ContainerID

Opcje

  • ContainerID - To jest identyfikator kontenera, do którego należy zabić procesy w kontenerze.

Wartość zwracana

Identyfikator kontenera działającego kontenera.

Przykład

sudo docker kill 07b0b6f434fe

Powyższe polecenie zabije procesy w uruchomionym kontenerze 07b0b6f434fe.

Wynik

Uruchomienie powyższego polecenia da następujący wynik -

Docker - cykl życia kontenera

Na poniższej ilustracji wyjaśniono cały cykl życia kontenera platformy Docker.

  • Początkowo kontener Docker będzie w created stan.

  • Następnie kontener Docker przechodzi do stanu uruchomionego, gdy Docker run polecenie jest używane.

  • Docker kill polecenie służy do zabicia istniejącego kontenera Docker.

  • Docker pause polecenie służy do wstrzymania istniejącego kontenera Docker.

  • Docker stop polecenie służy do wstrzymania istniejącego kontenera Docker.

  • Docker run polecenie służy do umieszczania kontenera z powrotem z pliku stopped stan na running stan.

Poniższy obraz przedstawia standardową i tradycyjną architekturę virtualization.

  • Serwer to serwer fizyczny używany do obsługi wielu maszyn wirtualnych.

  • System operacyjny hosta to maszyna podstawowa, taka jak Linux lub Windows.

  • Hypervisor to VMWare lub Windows Hyper V, który jest używany do hostowania maszyn wirtualnych.

  • Następnie zainstalowałbyś wiele systemów operacyjnych jako maszyny wirtualne na istniejącym hiperwizorze jako system operacyjny gościa.

  • Następnie hostowałbyś swoje aplikacje na każdym systemie operacyjnym gościa.

Poniższy obraz przedstawia nową generację wirtualizacji, która jest włączana za pośrednictwem platformy Dockers. Przyjrzyjmy się różnym warstwom.

  • Serwer to serwer fizyczny używany do obsługi wielu maszyn wirtualnych. Więc ta warstwa pozostaje taka sama.

  • System operacyjny hosta to maszyna podstawowa, taka jak Linux lub Windows. Więc ta warstwa pozostaje taka sama.

  • Teraz nadchodzi nowa generacja, czyli silnik Dockera. Służy do uruchamiania systemu operacyjnego, który wcześniej był maszynami wirtualnymi jako kontenerami Dockera.

  • Wszystkie aplikacje działają teraz jako kontenery Docker.

Wyraźną zaletą tej architektury jest to, że nie musisz mieć dodatkowego sprzętu dla systemu operacyjnego gościa. Wszystko działa jak kontenery Dockera.

Zaletą silnika Docker jest to, że jest przeznaczony do pracy w różnych systemach operacyjnych. Widzieliśmy już instalację w systemie Windows i widzieliśmy wszystkie polecenia Dockera w systemach Linux. Zobaczmy teraz różne polecenia Dockera w systemie operacyjnym Windows.

Obrazy platformy Docker

Uruchommy Dockera images polecenie na hoście systemu Windows.

Stąd widzimy, że mamy dwa obrazy - ubuntu i hello-world.

Prowadzenie kontenera

Teraz uruchommy kontener na hoście Windows Docker.

Widzimy, że uruchamiając kontener, możemy teraz uruchomić kontener Ubuntu na hoście Windows.

Lista wszystkich kontenerów

Wymieńmy wszystkie kontenery na hoście Windows.

Zatrzymywanie kontenera

Zatrzymajmy teraz działający kontener na hoście Windows.

Możesz więc zobaczyć, że silnik Dockera jest dość spójny, jeśli chodzi o różne hosty Dockera i działa w systemie Windows w taki sam sposób, jak działa w systemie Linux.

W tym rozdziale przyjrzymy się różnym opcjom konfiguracji Dockera.

serwisowy przystanek dokujący

To polecenie służy do zatrzymywania platformy Docker daemon proces.

Składnia

service docker stop

Opcje

Żaden

Wartość zwracana

Komunikat pokazujący, że proces Docker został zatrzymany.

Przykład

sudo service docker stop

Wynik

Uruchomienie powyższego polecenia da następujący wynik -

Service docker start

To polecenie służy do uruchamiania procesu demona platformy Docker.

Składnia

service docker start

Opcje

Żaden

Wartość zwracana

Komunikat pokazujący, że proces Docker został uruchomiony.

Przykład

sudo service docker start

Wynik

Uruchomienie powyższego polecenia da następujący wynik -

Domyślnie podczas uruchamiania kontenera użyjesz również pliku shell commandpodczas uruchamiania kontenera, jak pokazano poniżej. To właśnie widzieliśmy we wcześniejszych rozdziałach, kiedy pracowaliśmy z kontenerami.

Na powyższym zrzucie ekranu możesz zauważyć, że wydaliśmy następujące polecenie -

sudo docker run –it centos /bin/bash

Użyliśmy tego polecenia, aby utworzyć nowy kontener, a następnie użyliśmy polecenia Ctrl + P + Q, aby wyjść z kontenera. Zapewnia, że ​​kontener nadal istnieje nawet po wyjściu z kontenera.

Możemy zweryfikować, czy kontener nadal istnieje w Dockerze psKomenda. Gdybyśmy musieli wyjść bezpośrednio z kontenera, sam kontener zostałby zniszczony.

Teraz jest łatwiejszy sposób na przyczepienie się do kontenerów i czyste wyjście z nich bez konieczności ich niszczenia. Jednym ze sposobów osiągnięcia tego jest użyciensenter Komenda.

Zanim uruchomimy nsenter polecenie, musisz najpierw zainstalować nsenterwizerunek. Można to zrobić za pomocą następującego polecenia -

docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter

Zanim użyjemy nsenter polecenie, musimy uzyskać identyfikator procesu kontenera, ponieważ jest to wymagane przez nsenterKomenda. Identyfikator procesu możemy uzyskać za pośrednictwem Dockerainspect command i filtrując go za pomocą Pid.

Jak widać na powyższym zrzucie ekranu, najpierw użyliśmy rozszerzenia docker pspolecenie, aby zobaczyć uruchomione kontenery. Widzimy, że istnieje jeden uruchomiony kontener o identyfikatorze ef42a4c5e663.

Następnie używamy Dockera inspect polecenie, aby sprawdzić konfigurację tego kontenera, a następnie użyj greppolecenie, aby po prostu przefiltrować identyfikator procesu. Na podstawie danych wyjściowych widać, że identyfikator procesu to 2978.

Teraz, gdy mamy identyfikator procesu, możemy przejść dalej i użyć nsenter polecenie, aby dołączyć do kontenera Docker.

nsenter

Ta metoda pozwala na dołączenie do kontenera bez wychodzenia z kontenera.

Składnia

polecenie nsenter –m –u –n –p –i –t ID kontenera

Opcje

  • -u jest używany do wspominania o Uts namespace

  • -m jest używany do wspominania o mount namespace

  • -n jest używany do wspominania o network namespace

  • -p jest używany do wspominania o process namespace

  • -i s, aby kontener działał w trybie interaktywnym.

  • -t służy do łączenia strumieni we / wy kontenera z systemem operacyjnym hosta.

  • containerID - To jest identyfikator kontenera.

  • Command - To jest polecenie do uruchomienia w kontenerze.

Wartość zwracana

Żaden

Przykład

sudo nsenter –m –u –n –p –i –t 2978 /bin/bash

Wynik

Na podstawie wyników możemy zaobserwować następujące punkty -

  • Monit zmieni się na bash shell bezpośrednio, gdy wydajemy plik nsenter Komenda.

  • Następnie wydajemy plik exitKomenda. Teraz normalnie, jeśli nie korzystałeś znsenterdowództwo, kontener zostałby zniszczony. Ale zauważysz, że kiedy uruchomimynsenter polecenie, kontener nadal działa.

We wcześniejszych rozdziałach widzieliśmy różne pliki obrazów, takie jak Centos, które są pobierane z Docker hubz którego możesz obracać pojemniki. Ponownie pokazano przykład poniżej.

Jeśli używamy Docker imagespolecenie, możemy zobaczyć istniejące obrazy w naszym systemie. Na powyższym zrzucie ekranu widzimy, że są dwa obrazy:centos i nsenter.

Ale Docker daje również możliwość tworzenia własnych obrazów Dockera i można to zrobić za pomocą Docker Files. Plik Dockera to prosty plik tekstowy z instrukcjami dotyczącymi tworzenia obrazów.

Poniższe kroki wyjaśniają, w jaki sposób należy utworzyć plik Docker.

Step 1 - Utwórz plik o nazwie Docker File i edytuj go za pomocą vim. Należy pamiętać, że nazwa pliku musi być „Dockerfile” z „D” jako wielką literą.

Step 2 - Zbuduj swój plik Docker, postępując zgodnie z poniższymi instrukcjami.

#This is a sample Image 
FROM ubuntu 
MAINTAINER [email protected] 

RUN apt-get update 
RUN apt-get install –y nginx 
CMD [“echo”,”Image created”]

Na temat powyższego pliku należy zwrócić uwagę na następujące kwestie -

  • Pierwszy wiersz „#To jest przykładowy obraz” to komentarz. Możesz dodawać komentarze do pliku Docker za pomocą# Komenda

  • Następna linia musi zaczynać się od FROMsłowo kluczowe. Mówi dockerowi, z którego obrazu podstawowego chcesz oprzeć swój obraz. W naszym przykładzie tworzymy obraz zubuntu wizerunek.

  • Następnym poleceniem jest osoba, która ma zamiar zachować ten obraz. Tutaj określaszMAINTAINER słowo kluczowe i po prostu podaj identyfikator e-mail.

  • Plik RUNpolecenie służy do uruchamiania instrukcji na obrazie. W naszym przypadku najpierw aktualizujemy nasz system Ubuntu, a następnie instalujemy serwer nginx na naszymubuntu wizerunek.

  • Ostatnia komenda służy do wyświetlenia wiadomości użytkownikowi.

Step 3- Zapisz plik. W następnym rozdziale omówimy, jak zbudować obraz.

Stworzyliśmy nasz plik Dockera w ostatnim rozdziale. Nadszedł czas, aby zbudować plik Docker. Plik Docker można zbudować za pomocą następującego polecenia -

docker build

Dowiedzmy się więcej o tym poleceniu.

Docker Build

Ta metoda umożliwia użytkownikom tworzenie własnych obrazów platformy Docker.

Składnia

docker build  -t ImageName:TagName dir

Opcje

  • -t - wspomnieć o tagu do zdjęcia

  • ImageName - To jest nazwa, którą chcesz nadać swojemu obrazowi.

  • TagName - To jest tag, który chcesz nadać swojemu obrazowi.

  • Dir - Katalog, w którym znajduje się plik Docker.

Wartość zwracana

Żaden

Przykład

sudo docker build –t myimage:0.1.

Tutaj, myimage to nazwa, którą nadajemy Obrazowi i 0.1 to numer tagu, który nadajemy naszemu obrazowi.

Ponieważ plik Dockera znajduje się w bieżącym katalogu roboczym, użyliśmy „.” na końcu polecenia, aby oznaczyć bieżący katalog roboczy.

Wynik

Na podstawie danych wyjściowych najpierw zobaczysz, że obraz Ubuntu zostanie pobrany z Docker Hub, ponieważ nie ma obrazu dostępnego lokalnie na komputerze.

Wreszcie, po zakończeniu kompilacji, wszystkie niezbędne polecenia działałyby na obrazie.

Następnie zobaczysz pomyślnie utworzony komunikat i identyfikator nowego obrazu. Po uruchomieniu Dockerimages command, będziesz mógł wtedy zobaczyć swój nowy obraz.

Możesz teraz budować kontenery z nowego obrazu.

Repozytoria publiczne mogą służyć do hostowania obrazów platformy Docker, z których mogą korzystać wszyscy inni. Przykładem są obrazy, które są dostępne w Docker Hub. Większość obrazów, takich jak Centos, Ubuntu i Jenkins, jest publicznie dostępna dla wszystkich. Możemy również udostępnić nasze obrazy, publikując je w publicznym repozytorium w Docker Hub.

W naszym przykładzie użyjemy rozszerzenia myimagerepozytorium zbudowane w rozdziale „Building Docker Files” i załaduj ten obraz do Docker Hub. Najpierw przejrzyjmy obrazy na naszym hoście Docker, aby zobaczyć, co możemy wypchnąć do rejestru Docker.

Tutaj mamy nasze myimage:0.1obraz, który powstał w ramach rozdziału „Tworzenie plików Dockera”. Użyjmy tego do przesłania do publicznego repozytorium Dockera.

Poniższe kroki wyjaśniają, w jaki sposób można przesłać obraz do publicznego repozytorium.

Step 1- Zaloguj się do Docker Hub i utwórz repozytorium. To jest repozytorium, w którym będzie przechowywany twój obraz. Iść dohttps://hub.docker.com/ i zaloguj się za pomocą swoich poświadczeń.

Step 2 - Kliknij przycisk „Utwórz repozytorium” na powyższym ekranie i utwórz repozytorium o nazwie demorep. Upewnij się, że repozytorium jest widoczne dla wszystkich.

Po utworzeniu repozytorium zanotuj plik pull polecenie, które jest dołączone do repozytorium.

Plik pull polecenie, które zostanie użyte w naszym repozytorium jest następujące -

docker pull demousr/demorep

Step 3- Teraz wróć do hosta Dockera. Tutaj musimy oznaczyć naszmyimagedo nowego repozytorium utworzonego w Docker Hub. Możemy to zrobić za pomocą Dockeratag command.

Dowiemy się więcej na ten temat tag command w dalszej części tego rozdziału.

Step 4- Wydaj polecenie logowania do platformy Docker, aby zalogować się do repozytorium Docker Hub z wiersza polecenia. Polecenie logowania do platformy Docker wyświetli monit o podanie nazwy użytkownika i hasła do repozytorium Docker Hub.

Step 5- Po oznaczeniu obrazu nadszedł czas, aby przesłać go do repozytorium Docker Hub. Możemy to zrobić za pomocą DockerapushKomenda. Dowiemy się więcej o tym poleceniu w dalszej części tego rozdziału.

tag docker

Ta metoda umożliwia oznaczenie obrazu w odpowiednim repozytorium.

Składnia

docker tag imageID Repositoryname

Opcje

  • imageID - To jest ImageID, który należy oznaczyć w repozytorium.

  • Repositoryname - To jest nazwa repozytorium, do którego należy przypisać ImageID.

Wartość zwracana

Żaden

Przykład

sudo docker tag ab0c1d3744dd demousr/demorep:1.0

Wynik

Przykładowe dane wyjściowe z powyższego przykładu podano poniżej.

docker push

Ta metoda umożliwia wypychanie obrazów do Docker Hub.

Składnia

docker push Repositoryname

Opcje

  • Repositoryname - To jest nazwa repozytorium, które należy przekazać do Docker Hub.

Wartość zwracana

Długi identyfikator repozytorium przesłany do Docker Hub.

Przykład

sudo docker push demousr/demorep:1.0

Wynik

Jeśli wrócisz do strony Docker Hub i przejdziesz do swojego repozytorium, zobaczysz nazwę tagu w repozytorium.

Teraz spróbujmy pobrać repozytorium, które przesłaliśmy na nasz host Docker. Najpierw usuńmy obrazy,myimage:0.1 i demousr/demorep:1.0, z lokalnego hosta Dockera. Użyjmy Dockerapull command aby pobrać repozytorium z Docker Hub.

Na powyższym zrzucie ekranu widać, że Docker pull polecenie pobrało nasze nowe repozytorium z Docker Hub i umieściło je na naszym komputerze.

W Dockerze same kontenery mogą mieć aplikacje działające na portach. Po uruchomieniu kontenera, jeśli chcesz uzyskać dostęp do aplikacji w kontenerze za pośrednictwem numeru portu, musisz zamapować numer portu kontenera na numer portu hosta platformy Docker. Spójrzmy na przykład, jak można to osiągnąć.

W naszym przykładzie zamierzamy pobrać kontener Jenkins z Docker Hub. Następnie zmapujemy numer portu Jenkins do numeru portu na hoście Docker.

Step 1 - Najpierw musisz zrobić prostą rejestrację w Docker Hub.

Step 2 - Po zarejestrowaniu się zostaniesz zalogowany do Docker Hub.

Step 3 - Następnie przejrzyjmy i znajdź obraz Jenkinsa.

Step 4 - Jeśli przewiniesz w dół na tej samej stronie, zobaczysz Docker pullKomenda. Zostanie to wykorzystane do pobrania obrazu Jenkins na lokalny serwer Ubuntu.

Step 5 - Teraz przejdź do serwera Ubuntu i uruchom polecenie -

sudo docker pull jenkins

Step 6 - Aby zrozumieć, jakie porty są ujawniane przez kontener, należy użyć Dockera inspect command do sprawdzenia obrazu.

Dowiedzmy się teraz więcej na ten temat inspect Komenda.

docker inspect

Ta metoda umożliwia zwrócenie informacji niskiego poziomu na temat kontenera lub obrazu.

Składnia

docker inspect Container/Image

Opcje

  • Container/Image - Pojemnik lub obraz do sprawdzenia

Wartość zwracana

Informacje niskiego poziomu obrazu lub kontenera w formacie JSON.

Przykład

sudo docker inspect jenkins

Wynik

Dane wyjściowe inspectpolecenie daje dane wyjściowe JSON. Jeśli przyjrzymy się wynikowi, zobaczymy, że istnieje sekcja „ExposedPorts” i zobaczymy, że są tam wymienione dwa porty. Jeden todata port z 8080, a drugi to control port z 50000.

Aby uruchomić Jenkins i zmapować porty, musisz zmienić Docker runpolecenie i dodaj opcję „p”, która określa mapowanie portów. Musisz więc uruchomić następujące polecenie -

sudo docker run -p 8080:8080 -p 50000:50000 jenkins

Po lewej stronie mapowania numeru portu znajduje się port hosta platformy Docker do zamapowania, a po prawej stronie numer portu kontenera platformy Docker.

Po otwarciu przeglądarki i przejściu do hosta Docker na porcie 8080 zobaczysz, że Jenkins działa.

Może zaistnieć potrzeba posiadania własnych prywatnych repozytoriów. Możesz nie chcieć hostować repozytoriów w Docker Hub. W tym celu istnieje sam kontener repozytorium z Dockera. Zobaczmy, jak możemy pobrać i wykorzystać kontener do rejestracji.

Step 1 - Użyj Dockera runpolecenie pobrania rejestru prywatnego. Można to zrobić za pomocą następującego polecenia.

sudo docker run –d –p 5000:5000 –-name registry registry:2

Na temat powyższego polecenia należy zwrócić uwagę na następujące punkty -

  • Registry to kontener zarządzany przez Docker, który może służyć do hostowania prywatnych repozytoriów.

  • Numer portu udostępniony przez kontener to 5000. W związku z tym z –p command, mapujemy ten sam numer portu na numer portu 5000 na naszym hoście lokalnym.

  • Po prostu oznaczamy kontener rejestru jako „2”, aby odróżnić go na hoście Docker.

  • Plik –dOpcja służy do uruchamiania kontenera w trybie odłączonym. Dzieje się tak, aby kontener mógł działać w tle

Step 2 - Zróbmy docker ps aby sprawdzić, czy kontener rejestru rzeczywiście działa.

Teraz potwierdziliśmy, że kontener rejestru rzeczywiście działa.

Step 3- Teraz oznaczmy jeden z naszych istniejących obrazów, abyśmy mogli przesłać go do naszego lokalnego repozytorium. W naszym przykładzie, ponieważ mamycentos obraz dostępny lokalnie, oznaczymy go w naszym prywatnym repozytorium i dodamy nazwę tagu centos.

sudo docker tag 67591570dd29 localhost:5000/centos

Na temat powyższego polecenia należy zwrócić uwagę na następujące punkty -

  • 67591570dd29 odnosi się do identyfikatora obrazu dla centos wizerunek.

  • localhost:5000 to lokalizacja naszego prywatnego repozytorium.

  • Oznaczamy nazwę repozytorium jako centos w naszym prywatnym repozytorium.

Step 4 - Teraz użyjmy Dockera push polecenie wypchnięcia repozytorium do naszego prywatnego repozytorium.

sudo docker push localhost:5000/centos

Tutaj pchamy centos obraz do prywatnego repozytorium hostowanego pod adresem localhost:5000.

Step 5 - Teraz usuńmy lokalne obrazy, dla których mamy centos używając docker rmipolecenia. Następnie możemy pobrać wymagane plikicentos obraz z naszego prywatnego repozytorium.

sudo docker rmi centos:latest 
sudo docker rmi 67591570dd29

Step 6 - Teraz, kiedy nie mamy żadnych centos obrazy na naszej maszynie lokalnej, możemy teraz używać następującego Dockera pull polecenie, aby pociągnąć centos obraz z naszego prywatnego repozytorium.

sudo docker pull localhost:5000/centos

Tutaj ciągniemy centos obraz do prywatnego repozytorium hostowanego pod adresem localhost:5000.

Jeśli teraz zobaczysz obrazy w swoim systemie, zobaczysz plik centos obraz również.

Dowiedzieliśmy się już, jak używać Docker File do tworzenia własnych niestandardowych obrazów. Zobaczmy teraz, jak możemy zbudować obraz serwera WWW, który można wykorzystać do tworzenia kontenerów.

W naszym przykładzie zamierzamy użyć serwera internetowego Apache w systemie Ubuntu do zbudowania naszego obrazu. Wykonajmy kroki podane poniżej, aby zbudować nasz plik Docker serwera WWW.

Step 1- Pierwszym krokiem jest zbudowanie naszego pliku Docker. Użyjmyvim i utwórz plik Docker zawierający następujące informacje.

FROM ubuntu 
RUN apt-get update 
RUN apt-get install –y apache2 
RUN apt-get install –y apache2-utils 
RUN apt-get clean 
EXPOSE 80 CMD [“apache2ctl”, “-D”, “FOREGROUND”]

Należy zwrócić uwagę na następujące kwestie dotyczące powyższych stwierdzeń -

  • Najpierw tworzymy nasz obraz z obrazu podstawowego Ubuntu.

  • Następnie użyjemy polecenia RUN, aby zaktualizować wszystkie pakiety w systemie Ubuntu.

  • Następnie używamy polecenia RUN, aby zainstalować apache2 na naszym obrazie.

  • Następnie używamy polecenia RUN, aby zainstalować niezbędne pakiety narzędzi apache2 na naszym obrazie.

  • Następnie używamy polecenia RUN, aby wyczyścić wszystkie niepotrzebne pliki z systemu.

  • Polecenie EXPOSE służy do udostępnienia portu 80 serwera Apache w kontenerze na hoście Docker.

  • Wreszcie, polecenie CMD służy do uruchamiania apache2 w tle.

Po wprowadzeniu szczegółów pliku po prostu zapisz plik.

Step 2 - Uruchom Docker buildpolecenie, aby skompilować plik Docker. Można to zrobić za pomocą następującego polecenia -

sudo docker build –t=”mywebserver” .

Oznaczamy nasz obraz jako mywebserver. Po utworzeniu obrazu otrzymasz pomyślny komunikat, że plik został zbudowany.

Step 3- Po utworzeniu pliku serwera WWW przyszedł czas na utworzenie kontenera z obrazu. Możemy to zrobić za pomocą Dockerarun Komenda.

sudo docker run –d –p 80:80 mywebserver

Na temat powyższego polecenia należy zwrócić uwagę na następujące punkty -

  • Numer portu udostępniany przez kontener to 80. W związku z tym z –p polecenie, mapujemy ten sam numer portu na numer portu 80 na naszym hoście lokalnym.

  • Plik –dOpcja służy do uruchamiania kontenera w trybie odłączonym. Dzieje się tak, aby kontener mógł działać w tle.

Jeśli przejdziesz do portu 80 hosta Docker w przeglądarce internetowej, zobaczysz, że Apache jest uruchomiony i działa.

Docker ma wiele poleceń instrukcji. To są polecenia, które są umieszczane w pliku Docker. Spójrzmy na te, które są dostępne.

Instrukcja CMD

To polecenie służy do wykonywania polecenia w czasie wykonywania, gdy kontener jest wykonywany.

Składnia

CMD command param1

Opcje

  • command - To jest polecenie uruchamiane po uruchomieniu kontenera.

  • param1 - jest to parametr wprowadzony do polecenia.

Wartość zwracana

Polecenie zostanie wykonane odpowiednio.

Przykład

W naszym przykładzie wprowadzimy prosty plik Hello World echo w naszym pliku Docker i utwórz obraz i uruchom z niego kontener.

Step 1 - Zbuduj plik Docker za pomocą następujących poleceń -

FROM ubuntu 
MAINTAINER [email protected] 
CMD [“echo” , “hello world”]

Tutaj CMD służy tylko do drukowania hello world.

Step 2 - Zbuduj obraz za pomocą Dockera build Komenda.

Step 3 - Uruchom kontener z obrazu.

PUNKT WEJŚCIA

To polecenie może być również używane do wykonywania poleceń w czasie wykonywania dla kontenera. Ale możemy być bardziej elastyczni dzięki poleceniu ENTRYPOINT.

Składnia

ENTRYPOINT command param1

Opcje

  • command - To jest polecenie uruchamiane po uruchomieniu kontenera.

  • param1 - jest to parametr wprowadzony do polecenia.

Wartość zwracana

Polecenie zostanie wykonane odpowiednio.

Przykład

Spójrzmy na przykład, aby dowiedzieć się więcej o ENTRYPOINT. W naszym przykładzie wprowadzimy prosty plikecho polecenie w naszym pliku Docker i utwórz obraz i uruchom z niego kontener.

Step 1 - Zbuduj plik Docker za pomocą następujących poleceń -

FROM ubuntu 
MAINTAINER [email protected] 
ENTRYPOINT [“echo”]

Step 2 - Zbuduj obraz za pomocą Dockera build Komenda.

Step 3 - Uruchom kontener z obrazu.

ENV

To polecenie służy do ustawiania zmiennych środowiskowych w kontenerze.

Składnia

ENV key value

Opcje

  • Key - To jest klucz do zmiennej środowiskowej.

  • value - to jest wartość zmiennej środowiskowej.

Wartość zwracana

Polecenie zostanie wykonane odpowiednio.

Przykład

W naszym przykładzie wprowadzimy prosty plik echo polecenie w naszym pliku Docker i utwórz obraz i uruchom z niego kontener.

Step 1 - Zbuduj plik Docker za pomocą następujących poleceń -

FROM ubuntu 
MAINTAINER [email protected] 
ENV var1=Tutorial var2=point

Step 2 - Zbuduj obraz za pomocą Dockera build Komenda.

Step 3 - Uruchom kontener z obrazu.

Step 4 - Na koniec wykonaj env polecenie, aby wyświetlić zmienne środowiskowe.

WORKDIR

To polecenie służy do ustawiania katalogu roboczego kontenera.

Składnia

WORKDIR dirname

Opcje

  • dirname- Nowy katalog roboczy. Jeśli katalog nie istnieje, zostanie dodany.

Wartość zwracana

Polecenie zostanie wykonane odpowiednio.

Przykład

W naszym przykładzie wprowadzimy prosty plik echo polecenie w naszym pliku Docker i utwórz obraz i uruchom z niego kontener.

Step 1 - Zbuduj plik Docker za pomocą następujących poleceń -

FROM ubuntu 
MAINTAINER [email protected] 
WORKDIR /newtemp 
CMD pwd

Step 2 - Zbuduj obraz za pomocą Dockera build Komenda.

Step 3 - Uruchom kontener z obrazu.

Łączenie kontenerów umożliwia łączenie wielu kontenerów ze sobą. To lepsza opcja niż ujawnianie portów. Przejdźmy krok po kroku i dowiedzmy się, jak to działa.

Step 1 - Pobierz obraz Jenkinsa, jeśli jeszcze go nie ma, używając pliku Jenkins pull Komenda.

Step 2 - Gdy obraz będzie dostępny, uruchom kontener, ale tym razem możesz określić nazwę kontenera przy użyciu rozszerzenia –-nameopcja. To będzie naszesource container.

Step 3- Następnie nadszedł czas na uruchomienie kontenera docelowego, ale tym razem połączymy go z naszym kontenerem źródłowym. W przypadku naszego kontenera docelowego użyjemy standardowego obrazu Ubuntu.

Kiedy robisz docker ps, zobaczysz, że oba kontenery działają.

Step 4 - Teraz dołącz do pojemnika odbiorczego.

Następnie uruchom envKomenda. Zauważysz nowe zmienne do łączenia z kontenerem źródłowym.

Sterowniki pamięci masowej

Docker ma wiele sterowników pamięci masowej, które pozwalają na pracę z podstawowymi urządzeniami pamięci masowej. W poniższej tabeli przedstawiono różne sterowniki pamięci masowej wraz z technologią używaną w sterownikach pamięci masowej.

Technologia Sterownik pamięci masowej
OverlayFS overlay lub overlay 2
AUFS aufs
Btrfs brtfs
Menadżer urządzeń menadżer urządzeń
VFS vfs
ZFS zfs

Omówmy teraz niektóre przypadki, w których używałbyś różnych sterowników pamięci masowej -

AUFS

  • To jest stabilny sterownik; może być używany do aplikacji gotowych do produkcji.

  • Ma dobre wykorzystanie pamięci i jest dobre dla zapewnienia płynnego działania platformy Docker dla kontenerów.

  • Z tym sterownikiem wiąże się czynność związana z wysokim zapisem, którą należy wziąć pod uwagę.

  • Jest to dobre dla systemów, które działają jako platforma jako usługa.

Devicemapper

  • To jest stabilny sterownik; zapewnia płynne działanie Dockera.

  • Ten sterownik jest dobry do testowania aplikacji w laboratorium.

  • Ten sterownik jest zgodny z główną funkcjonalnością jądra Linuksa.

Btrfs

  • Ten sterownik jest zgodny z główną funkcjonalnością jądra Linuksa.

  • Z tym sterownikiem wiąże się czynność związana z wysokim zapisem, którą należy wziąć pod uwagę.

  • Ten sterownik jest dobry w przypadkach, w których utrzymujesz wiele pul kompilacji.

Ovelay

  • To jest stabilny sterownik, zgodny z główną funkcjonalnością jądra Linuksa.

  • Ma dobre wykorzystanie pamięci.

  • Ten sterownik jest dobry do testowania aplikacji w laboratorium.

ZFS

  • To jest stabilny sterownik i jest dobry do testowania aplikacji w laboratorium.

  • Jest to dobre dla systemów, które działają typu Platform-as-a-Service.

Aby zobaczyć używany sterownik pamięci masowej, wydaj plik docker info Komenda.

Składnia

docker info

Opcje

Żaden

Wartość zwracana

Polecenie zapewni wszystkie względne informacje o składniku Docker zainstalowanym na hoście platformy Docker.

Przykład

sudo docker info

Wynik

Poniższe dane wyjściowe pokazują, że głównym używanym sterownikiem jest aufs sterownik i że katalog główny jest przechowywany w /var/lib/docker/aufs.

Woluminy danych

W Dockerze masz oddzielny wolumin, który można współużytkować w kontenerach. Są one znane jakodata volumes. Niektóre cechy objętości danych to:

  • Są inicjowane podczas tworzenia kontenera.
  • Można je udostępniać, a także ponownie wykorzystywać w wielu pojemnikach.
  • Wszelkie zmiany w samej głośności można wprowadzić bezpośrednio.
  • Istnieją nawet po usunięciu kontenera.

Spójrzmy na nasz kontener Jenkins. Zróbmydocker inspectaby zobaczyć szczegóły tego obrazu. Możemy wydać następujące polecenie, aby zapisać dane wyjściowe plikudocker inspect polecenie do pliku tekstowego, a następnie odpowiednio wyświetl plik.

sudo docker inspect Jenkins > tmp.txt

Podczas przeglądania pliku tekstowego przy użyciu rozszerzenia more command, zobaczysz wpis jako JENKINS_HOME=/var/Jenkins_home.

To jest mapowanie, które jest wykonywane w kontenerze za pośrednictwem obrazu Jenkins.

Załóżmy teraz, że chcesz zmapować wolumen w kontenerze na wolumin lokalny, a następnie musisz określić opcję –v podczas uruchamiania kontenera. Przykład pokazano poniżej -

sudo docker run –d –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins

Opcja –v służy do mapowania woluminu w kontenerze, który jest /var/jenkins_home do lokalizacji na naszym hoście Docker, czyli /home/demo.

Teraz, jeśli przejdziesz do /home/demo lokalizacji na Twoim hoście Docker po uruchomieniu kontenera, zobaczysz wszystkie obecne tam pliki kontenerów.

Zmiana sterownika pamięci masowej dla kontenera

Jeśli chcesz zmienić sterownik magazynu używany dla kontenera, możesz to zrobić podczas uruchamiania kontenera. Można to zrobić za pomocą–volume-driver parametr podczas korzystania z docker runKomenda. Przykład podano poniżej -

sudo docker run –d --volume-driver=flocker 
   –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins

Plik –volume-driver Opcja służy do określenia innego sterownika magazynu dla kontenera.

Aby potwierdzić, że sterownik został zmieniony, najpierw użyjmy docker pspolecenie, aby wyświetlić uruchomione kontenery i uzyskać identyfikator kontenera. Więc najpierw wydaj następujące polecenie -

sudo docker ps

Następnie wydaj docker inspect względem kontenera i umieść wynik w pliku tekstowym za pomocą polecenia.

sudo docker inspect 9bffb1bfebee > temp.txt

Jeśli przejrzysz plik tekstowy i przejdziesz do wiersza, który mówi VolumeDriverzobaczysz, że nazwa sterownika została zmieniona.

Tworzenie wolumenu

Wolumin można utworzyć wcześniej za pomocą dockerKomenda. Dowiedzmy się więcej o tym poleceniu.

Składnia

docker volume create –-name=volumename –-opt options

Opcje

  • name - To jest nazwa wolumenu, który ma zostać utworzony.

  • opt - Są to opcje, które możesz podać podczas tworzenia woluminu.

Wartość zwracana

Polecenie wyświetli nazwę utworzonego woluminu.

Przykład

sudo docker volume create –-name = demo –opt o = size = 100m

W powyższym poleceniu tworzymy wolumin o rozmiarze 100MB z nazwą demo.

Wynik

Wynik powyższego polecenia pokazano poniżej -

Lista wszystkich tomów

Możesz również wymienić wszystkie pliki docker volumes na docker host. Więcej szczegółów na temat tego polecenia podano poniżej -

Składnia

docker volume ls

Opcje

Żaden

Wartość zwracana

Polecenie wyświetli wszystkie woluminy w pliku docker host.

Przykład

sudo docker volume ls

Wynik

Wynik powyższego polecenia pokazano poniżej -

Docker dba o aspekty sieciowe, aby kontenery mogły komunikować się z innymi kontenerami, a także z hostem Docker. Jeśli zrobiszifconfigna hoście Docker zobaczysz adapter Ethernet Docker. Ta karta jest tworzona podczas instalowania platformy Docker na hoście platformy Docker.

To jest pomost między hostem Docker a hostem Linux. Przyjrzyjmy się teraz niektórym poleceniom związanym z obsługą sieci w Dockerze.

Lista wszystkich sieci Docker

Za pomocą tego polecenia można wyświetlić listę wszystkich sieci skojarzonych z platformą Docker na hoście.

Składnia

docker network ls

Opcje

Żaden

Wartość zwracana

Polecenie wyświetli wszystkie sieci na hoście Docker.

Przykład

sudo docker network ls

Wynik

Wynik powyższego polecenia pokazano poniżej

Inspekcja sieci Docker

Jeśli chcesz zobaczyć więcej szczegółów na temat sieci skojarzonej z Dockerem, możesz użyć Dockera network inspect Komenda.

Składnia

docker network inspect networkname

Opcje

  • networkname - To jest nazwa sieci, którą musisz sprawdzić.

Wartość zwracana

Polecenie wyświetli wszystkie szczegóły dotyczące sieci.

Przykład

sudo docker network inspect bridge

Wynik

Wynik powyższego polecenia pokazano poniżej -

Teraz uruchommy kontener i zobaczmy, co się stanie, gdy ponownie sprawdzimy sieć. Rozkręćmy kontener Ubuntu za pomocą następującego polecenia -

sudo docker run –it ubuntu:latest /bin/bash

Teraz, jeśli sprawdzimy naszą nazwę sieci za pomocą następującego polecenia, zobaczysz teraz, że kontener jest podłączony do mostu.

sudo docker network inspect bridge

Tworzenie własnej nowej sieci

Sieć można stworzyć w Dockerze przed uruchomieniem kontenerów. Można to zrobić za pomocą następującego polecenia -

Składnia

docker network create –-driver drivername name

Opcje

  • drivername - To jest nazwa używana dla sterownika sieciowego.

  • name - To jest nazwa nadana sieci.

Wartość zwracana

Polecenie wyświetli długi identyfikator nowej sieci.

Przykład

sudo docker network create –-driver bridge new_nw

Wynik

Wynik powyższego polecenia pokazano poniżej -

Możesz teraz dołączyć nową sieć podczas uruchamiania kontenera. Rozkręćmy więc kontener Ubuntu za pomocą następującego polecenia -

sudo docker run –it –network=new_nw ubuntu:latest /bin/bash

A teraz, gdy sprawdzisz sieć za pomocą następującego polecenia, zobaczysz kontener podłączony do sieci.

sudo docker network inspect new_nw

Node.js to struktura JavaScript używana do tworzenia aplikacji po stronie serwera. Jest to platforma typu open source, która została opracowana do działania w różnych systemach operacyjnych. Ponieważ Node.js jest popularną platformą programistyczną, Docker zapewnił również obsługę aplikacji Node.js.

Zobaczymy teraz różne kroki, aby skonfigurować i uruchomić kontener Docker dla Node.js.

Step 1- Pierwszym krokiem jest pobranie obrazu z Docker Hub. Po zalogowaniu się do Docker Hub będziesz mógł wyszukiwać i wyświetlać obraz Node.js, jak pokazano poniżej. Po prostu wpisz Node w polu wyszukiwania i kliknij link węzła (oficjalny), który pojawi się w wynikach wyszukiwania.

Step 2 - Zobaczysz, że Docker pull polecenie dla węzła w szczegółach repozytorium w Docker Hub.

Step 3 - Na hoście platformy Docker użyj platformy Docker pull polecenie, jak pokazano powyżej, aby pobrać najnowszy obraz węzła z Docker Hub.

Kiedyś pull jest zakończona, możemy przejść do następnego kroku.

Step 4 - Na hoście Docker użyjmy vimedytor i utwórz jeden przykładowy plik Node.js. W tym pliku dodamy proste polecenie wyświetlające „HelloWorld” w wierszu poleceń.

W pliku Node.js dodajmy następującą instrukcję -

Console.log(‘Hello World’);

Spowoduje to wyświetlenie frazy „Hello World”, gdy uruchomimy ją przez Node.js.

Upewnij się, że zapisałeś plik, a następnie przejdź do następnego kroku.

Step 5 - Aby uruchomić nasz skrypt Node.js przy użyciu kontenera Node Docker, musimy wykonać następującą instrukcję -

sudo docker run –it –rm –name = HelloWorld –v “$PWD”:/usr/src/app 
   –w /usr/src/app node node HelloWorld.js

Na temat powyższego polecenia należy zwrócić uwagę na następujące punkty -

  • Plik –rm Opcja służy do usunięcia kontenera po jego uruchomieniu.

  • Nadajemy nazwę kontenerowi o nazwie „HelloWorld”.

  • Wspominamy o mapowaniu objętości w pojemniku, który jest /usr/src/appdo naszego obecnego katalogu roboczego. Odbywa się to w taki sposób, że kontener węzła pobierze nasz skrypt HelloWorld.js, który jest obecny w naszym katalogu roboczym na hoście Docker.

  • Plik –w Opcja służy do określenia katalogu roboczego używanego przez Node.js.

  • Pierwsza opcja węzła służy do określania uruchamiania obrazu węzła.

  • Druga opcja węzła wspomina o uruchomieniu polecenia węzła w kontenerze węzłów.

  • Na koniec wymieniamy nazwę naszego skryptu.

Otrzymamy wtedy następujący wynik. Na podstawie wyników widać wyraźnie, że kontener Node działał jako kontener i wykonywał skrypt HelloWorld.js.

MongoDB to słynna baza danych zorientowana na dokumenty, która jest używana przez wiele współczesnych aplikacji internetowych. Ponieważ MongoDB jest popularną bazą danych do programowania, Docker zapewnił również obsługę MongoDB.

Zobaczymy teraz różne kroki, aby skonfigurować i uruchomić kontener Docker dla MongoDB.

Step 1- Pierwszym krokiem jest pobranie obrazu z Docker Hub. Po zalogowaniu się do Docker Hub będziesz mógł wyszukiwać i wyświetlać obraz Mongo, jak pokazano poniżej. Wystarczy wpisać Mongo w polu wyszukiwania i kliknąć link Mongo (oficjalny), który pojawia się w wynikach wyszukiwania.

Step 2 - Zobaczysz, że Docker pull polecenie dla Mongo w szczegółach repozytorium w Docker Hub.

Step 3 - Na hoście platformy Docker użyj platformy Docker pull polecenie, jak pokazano powyżej, aby pobrać najnowszy obraz Mongo z Docker Hub.

Step 4- Teraz, gdy mamy obraz dla Mongo, uruchommy najpierw kontener MongoDB, który będzie naszą instancją dla MongoDB. W tym celu wydamy następujące polecenie -

sudo docker run -it -d mongo

Na temat powyższego polecenia można zauważyć następujące punkty -

  • Plik –it Opcja służy do uruchamiania kontenera w trybie interaktywnym.

  • Plik –d Opcja służy do uruchamiania kontenera jako procesu demona.

  • Na koniec tworzymy kontener z obrazu Mongo.

Następnie możesz wydać plik docker ps polecenie, aby zobaczyć uruchomione kontenery -

Zwróć uwagę na następujące punkty -

  • Nazwa kontenera to tender_poitras. Ta nazwa będzie inna, ponieważ nazwy kontenerów będą się zmieniać, gdy obrócisz kontener. Ale po prostu zanotuj kontener, który uruchomiłeś.

  • Następnie zwróć uwagę na numer portu, na którym działa. Nasłuchuje na porcie TCP 27017.

Step 5- Teraz uruchommy kolejny kontener, który będzie działał jako nasz klient, który będzie używany do łączenia się z bazą danych MongoDB. Wydajmy w tym celu następujące polecenie -

sudo docker run –it –link=tender_poitras:mongo mongo /bin/bash

Na temat powyższego polecenia można zauważyć następujące punkty -

  • Plik –it Opcja służy do uruchamiania kontenera w trybie interaktywnym.

  • Teraz łączymy nasz nowy kontener z już uruchomionym kontenerem serwera MongoDB. W tym miejscu należy wymienić nazwę już uruchomionego kontenera.

  • Następnie określamy, że chcemy uruchomić kontener Mongo jako naszego klienta, a następnie uruchomić bin/bash powłoki w naszym nowym pojemniku.

Będziesz teraz w nowym kontenerze.

Step 6 - Uruchom env polecenie w nowym kontenerze, aby wyświetlić szczegóły dotyczące sposobu łączenia się z kontenerem serwera MongoDB.

Step 6- Teraz pora połączyć się z serwerem MongoDB z kontenera klienta. Możemy to zrobić za pomocą następującego polecenia -

mongo 172.17.0.2:27017

Na temat powyższego polecenia należy zwrócić uwagę na następujące punkty

  • Plik mongo polecenie jest klientem mongo polecenie używane do łączenia się z bazą danych MongoDB.

  • Adres IP i numer portu to to, co otrzymujesz, korzystając z env Komenda.

Po uruchomieniu polecenia zostaniesz połączony z bazą danych MongoDB.

Następnie możesz uruchomić dowolne polecenie MongoDB w wierszu polecenia. W naszym przykładzie uruchamiamy następujące polecenie -

use demo

To polecenie jest poleceniem MongoDB, które służy do przełączania się na nazwę bazy danych demo. Jeśli baza danych nie jest dostępna, zostanie utworzona.

Teraz pomyślnie utworzyłeś kontener klienta i serwera MongoDB.

NGINX to popularna lekka aplikacja internetowa używana do tworzenia aplikacji po stronie serwera. Jest to serwer WWW typu open source, który został opracowany do działania w różnych systemach operacyjnych. Odnginx jest popularnym serwerem WWW do programowania, Docker zapewnił, że ma wsparcie dla nginx.

Zobaczymy teraz różne kroki, aby uzyskać kontener Docker dla nginx działa i działa.

Step 1- Pierwszym krokiem jest pobranie obrazu z Docker Hub. Po zalogowaniu się do Docker Hub będziesz mógł wyszukiwać i wyświetlać obraznginxjak pokazano niżej. Po prostu wpisz nginx w polu wyszukiwania i kliknijnginx (oficjalny) link, który pojawia się w wynikach wyszukiwania.

Step 2 - Zobaczysz, że Docker pull polecenie dla nginx w szczegółach repozytorium w Docker Hub.

Step 3 - Na hoście platformy Docker użyj platformy Docker pull polecenie, jak pokazano powyżej, aby pobrać najnowszy obraz Nginx z Docker Hub.

Step 4 - Teraz uruchommy nginx pojemnik za pomocą następującego polecenia.

sudo docker run –p 8080:80 –d nginx

Wystawiamy port na nginx serwer, który jest portem 80 do portu 8080 na hoście platformy Docker.

Po uruchomieniu polecenia, jeśli przejdziesz do adresu URL, otrzymasz następujące dane wyjściowe http://dockerhost:8080. To pokazuje, żenginx kontener jest gotowy i działa.

Step 5 - Spójrzmy na inny przykład, w którym możemy hostować prostą stronę internetową w naszym ngnixpojemnik. W naszym przykładzie utworzymy prosty plikHelloWorld.html plik i umieść go w naszym nginx pojemnik.

Najpierw utwórzmy plik HTML o nazwie HelloWorld.html

Dodajmy prostą linię Hello World w pliku HTML.

Następnie uruchommy następujące polecenie Dockera.

sudo docker run –p 8080:80 –v 
   “$PWD”:/usr/share/nginx/html:ro –d nginx

Na temat powyższego polecenia należy zwrócić uwagę na następujące punkty -

  • Wystawiamy port na nginx serwer, który jest portem 80 do portu 8080 na hoście platformy Docker.

  • Następnie dołączamy objętość do pojemnika, który jest /usr/share/nginx/htmldo naszego obecnego katalogu roboczego. Tutaj jest przechowywany nasz plik HelloWorld.html.

Teraz, jeśli przejdziemy do adresu URL http://dockerhost:8080/HelloWorld.html zgodnie z oczekiwaniami otrzymamy następujący wynik -

W rozdziałach wprowadzających widzieliśmy instalację zestawu narzędzi Docker w systemie Windows. Przybornik Docker został opracowany w taki sposób, aby kontenery Docker mogły być uruchamiane w systemach Windows i MacOS. Witryna zawierająca zestaw narzędzi w systemie Windows tohttps://docs.docker.com/docker-for-windows/

W przypadku systemu Windows musisz mieć system Windows 10 lub Windows Server 2016 z włączoną funkcją Hyper-V.

Zestaw narzędzi składa się z następujących elementów -

  • Docker Engine - Jest używany jako silnik podstawowy lub demon platformy Docker, który jest używany do uruchamiania kontenerów platformy Docker.

  • Docker Machine - do uruchamiania poleceń maszyny Docker.

  • Docker Compose do uruchamiania poleceń Docker Compose.

  • Kinematic - To jest interfejs graficzny Docker zbudowany dla Windows i Mac OS.

  • Oracle virtualbox

Omówmy teraz różne typy działań, które są możliwe dzięki przybornikowi Docker.

Działa w Powershell

Dzięki przybornikowi Docker w systemie Windows 10 możesz teraz wyłączać polecenia Dockera powershell. Jeśli otworzysz program PowerShell w systemie Windows i wpiszesz polecenie wersji Dockera, uzyskasz wszystkie wymagane szczegóły dotyczące zainstalowanej wersji Dockera.

Pobieranie obrazów i uruchamianie kontenerów

Możesz teraz pobierać obrazy z Docker Hub i uruchamiać kontenery w PowerShell, tak jak w systemie Linux. Poniższy przykład pokaże w skrócie pobieranie obrazu Ubuntu i uruchamianie kontenera z obrazu.

Pierwszym krokiem jest użycie Dockera pull polecenie, aby pobrać obraz Ubuntu z Docker Hub.

Następnym krokiem jest uruchomienie obrazu platformy Docker przy użyciu następującego polecenia run polecenie -

docker run –it ubuntu /bin/bash

Zauważysz, że polecenie jest takie samo jak w Linuksie.

Kitematic

To jest odpowiednik GUI Dockera w systemie Windows. Aby otworzyć ten GUI, przejdź do paska zadań i na ikonę Dockera, kliknij prawym przyciskiem myszy i wybierz opcję otwarcia Kitematic.

Pojawi się monit o pobranie GUI Kitematic. Po pobraniu rozpakuj zawartość. Pojawi się plik o nazwieKitematic.exe. Kliknij dwukrotnie ten plik exe, aby otworzyć interfejs GUI.

Zostaniesz poproszony o zalogowanie się do Docker Hub, wejście przez GUI. Po prostu wprowadź wymaganą nazwę użytkownika i hasło, a następnie kliknij przycisk Zaloguj.

Po zalogowaniu się będziesz mógł zobaczyć wszystkie obrazy pobrane do systemu po lewej stronie interfejsu.

Po prawej stronie znajdziesz wszystkie obrazy dostępne w Docker Hub.

Weźmy przykład, aby zrozumieć, jak pobrać obraz Node z Docker Hub przy użyciu Kitematic.

Step 1 - Wprowadź słowo kluczowe węzła w kryteriach wyszukiwania.

Step 2 - Kliknij createprzycisk na oficjalnym obrazie Node. Zobaczysz wtedy pobieranie obrazu.

Po pobraniu obrazu rozpocznie się uruchamianie kontenera Node.

Step 3 - Jeśli pójdziesz do settings możesz przejść do dalszych opcji ustawień, jak pokazano poniżej.

  • General settings - W tej zakładce możesz nazwać kontener, zmienić ustawienia ścieżki i usunąć kontener.

  • Ports- Tutaj możesz zobaczyć różne mapowania portów. Jeśli chcesz, możesz utworzyć własne mapowania portów.

  • Volumes - Tutaj możesz zobaczyć różne mapowania głośności.

  • Advanced - Zawiera zaawansowane ustawienia kontenera.

ASP.Net to standardowa platforma programistyczna zapewniana przez firmę Microsoft do tworzenia aplikacji po stronie serwera. Ponieważ ASP.Net istnieje od dłuższego czasu w rozwoju, Docker zapewnia obsługę ASP.Net.

W tym rozdziale zobaczymy różne kroki potrzebne do skonfigurowania i uruchomienia kontenera Docker dla ASP.Net.

Wymagania wstępne

Aby uruchomić ASP.Net, należy najpierw wykonać następujące kroki.

Step 1 - Ponieważ może to działać tylko w systemach Windows, najpierw musisz upewnić się, że masz system Windows 10 lub Windows Server 2016.

Step 2- Następnie upewnij się, że Hyper-V jest i Kontenery są zainstalowane w systemie Windows. Aby zainstalować Hyper-V i kontenery, możesz przejść do Włączanie lub wyłączanie funkcji systemu Windows. Następnie upewnij się, że opcja Hyper-V i Kontenery są zaznaczone, a następnie kliknij przycisk OK.

Po tej operacji system może wymagać ponownego uruchomienia.

Step 3 - Następnie musisz użyć następującego polecenia Powershell, aby zainstalować plik 1.13.0rc4wersja Dockera. Następujące polecenie pobierze to i zapisze w lokalizacji tymczasowej.

Invoke-WebRequest "https://test.docker.com/builds/Windows/x86_64/docker-1.13.0-
   rc4.zip" -OutFile "$env:TEMP\docker-1.13.0-rc4.zip" –UseBasicParsing

Step 4 - Następnie musisz rozwinąć archiwum, korzystając z następującego powershell Komenda.

Expand-Archive -Path "$env:TEMP\docker-1.13.0-rc4.zip" -DestinationPath $env:ProgramFiles

Step 5 - Następnie musisz dodać pliki platformy Docker do zmiennej środowiskowej, korzystając z następującego polecenia powershell Komenda.

$env:path += ";$env:ProgramFiles\Docker"

Step 6 - Następnie musisz zarejestrować usługę Docker Daemon Service za pomocą następującego powershell Komenda.

dockerd --register-service

Step 7 - Wreszcie możesz rozpocząć docker daemon za pomocą następującego polecenia.

Start-Service Docker

Użyj docker version polecenie w powershell aby sprawdzić, czy docker daemon działa

Instalowanie kontenera ASP.Net

Zobaczmy, jak zainstalować kontener ASP.Net.

Step 1- Pierwszym krokiem jest pobranie obrazu z Docker Hub. Po zalogowaniu się do Docker Hub będziesz mógł wyszukiwać i wyświetlać obrazMicrosoft/aspnetjak pokazano niżej. Po prostu wpiszasp w polu wyszukiwania i kliknij łącze Microsoft / aspnet, które pojawi się w wynikach wyszukiwania.

Step 2 - Zobaczysz, że Docker pull polecenie dla ASP.Net w szczegółach repozytorium w Docker Hub.

Step 3 - Przejdź do Docker Host i uruchom Docker pullpolecenie dla obrazu Microsoft / ASPNET. Zauważ, że obraz jest dość duży, gdzieś blisko 4,2 GB.

Step 4 - Teraz przejdź do następującej lokacji https://github.com/Microsoft/aspnet-docker i pobierz całe repozytorium Git.

Step 5 - Utwórz folder o nazwie Appna twoim dysku C. Następnie skopiuj zawartość z pliku4.6.2/samplefolder na dysk C. Przejdź do pliku Docker w katalogu przykładowym i wydaj następujące polecenie -

docker build –t aspnet-site-new –build-arg site_root=/

Na temat powyższego polecenia należy zwrócić uwagę na następujące punkty -

  • Tworzy nowy obraz o nazwie aspnet-site-new z pliku Docker.
  • Ścieżka główna jest ustawiona na folder localpath.

Step 6- Teraz pora uruchomić kontener. Można to zrobić za pomocą następującego polecenia -

docker run –d –p 8000:80 –name my-running-site-new aspnet-site-new

Step 7- Będziesz mieć teraz uruchomione usługi IIS w kontenerze Docker. Aby znaleźć adres IP kontenera Docker, możesz wydać plik Dockerinspect polecenie, jak pokazano poniżej.

Docker Cloud to usługa świadczona przez Docker, w której możesz wykonać następujące operacje -

  • Nodes - Możesz połączyć Docker Cloud z istniejącymi dostawcami chmury, takimi jak Azure i AWS, aby uruchomić kontenery w tych środowiskach.

  • Cloud Repository - Zapewnia miejsce, w którym możesz przechowywać własne repozytoria.

  • Continuous Integration - Połącz się z Github i zbuduj potok ciągłej integracji.

  • Application Deployment - Wdrażaj i skaluj infrastrukturę i kontenery.

  • Continuous Deployment - Może zautomatyzować wdrożenia.

Pierwsze kroki

Możesz przejść do następującego łącza, aby rozpocząć pracę z Docker Cloud - https://cloud.docker.com/

Po zalogowaniu otrzymasz następujący podstawowy interfejs -

Łączenie się z dostawcą chmury

Pierwszym krokiem jest połączenie się z istniejącym dostawcą chmury. Poniższe kroki pokazują, jak połączyć się z dostawcą Amazon Cloud.

Step 1- Pierwszym krokiem jest upewnienie się, że masz odpowiednie klucze AWS. Można to pobrać zawskonsola. Zaloguj się do swojegoaws konto za pomocą poniższego linku - https://aws.amazon.com/console/

Step 2- Po zalogowaniu przejdź do sekcji Poświadczenia bezpieczeństwa. Zanotuj klucze dostępu, które będą używane z Docker Hub.

Step 3 - Następnie musisz utworzyć politykę w awsco pozwoli Dockerowi wyświetlać instancje EC2. Przejdź do sekcji profili waws. KliknijCreate Policy przycisk.

Step 4 - Kliknij „Stwórz własne zasady” i podaj nazwę polityki jako dockercloudpolicy oraz definicję zasad, jak pokazano poniżej.

{ 
   "Version": "2012-10-17", 
   "Statement": [ { 
      "Action": [ 
         "ec2:*", 
         "iam:ListInstanceProfiles" 
      ], 
      "Effect": "Allow", 
      "Resource": "*" 
   } ] 
}

Następnie kliknij Create Policy przycisk

Step 5 - Następnie musisz utworzyć plik rolektóry będzie używany przez Dockera do uruchamiania węzłów w AWS. W tym celu przejdź doRoles w AWS i kliknij Create New Role opcja.

Step 6 - Podaj nazwę roli jako dockercloud-role.

Step 7 - Na następnym ekranie przejdź do „Rola dostępu do wielu kont” i wybierz „Zapewnij dostęp między swoim kontem a kontem AWS innej firmy”.

Step 8 - Na następnym ekranie wprowadź następujące dane -

  • W polu Identyfikator konta wprowadź identyfikator usługi Docker Cloud: 689684103426.
  • W polu Identyfikator zewnętrzny wprowadź swoją nazwę użytkownika Docker Cloud.

Step 9 - Następnie kliknij Next Step i na kolejnym ekranie załącz profil utworzony w poprzednim kroku.

Step 10 - Na koniec, na ostatnim ekranie, gdy tworzona jest rola, pamiętaj o skopiowaniu pliku arn tworzona rola.

arn:aws:iam::085363624145:role/dockercloud-role

Step 11 - A teraz wróć do Docker Cloud, Wybierz Cloud Providersi kliknij plug symbol obok Amazon Web Services.

Wejdz do arn rolę i kliknij Save przycisk.

Po zapisaniu integracja z AWS byłaby zakończona.

Konfigurowanie węzłów

Po zakończeniu integracji z AWS następnym krokiem jest skonfigurowanie węzła. Przejdź do sekcji Węzły w Docker Cloud. Zwróć uwagę, że konfiguracja węzłów automatycznie skonfiguruje najpierw klaster węzłów.

Step 1 - Przejdź do sekcji Węzły w Docker Cloud.

Step 2 - Następnie możesz podać szczegóły węzłów, które zostaną skonfigurowane w AWS.

Następnie możesz kliknąć klaster Uruchom węzeł, który będzie obecny u dołu ekranu. Po wdrożeniu węzła otrzymasz powiadomienie na ekranie Node Cluster.

Wdrażanie usługi

Następnym krokiem po wdrożeniu węzła jest wdrożenie usługi. Aby to zrobić, musimy wykonać następujące kroki.

Step 1 - Idź do Services Sectionw Docker Cloud. KliknijCreate przycisk

Step 2- Wybierz wymaganą usługę. W naszym przypadku wybierzmymongo.

Step 3 - Na następnym ekranie wybierz plik Create & Deployopcja. Spowoduje to rozpoczęcie wdrażaniaMongo kontener w klastrze węzłów.

Po wdrożeniu będziesz mógł zobaczyć kontener w stanie uruchomionym.

Docker ma mechanizmy rejestrowania, których można używać do debugowania problemów w momencie ich wystąpienia. Istnieje logowanie wdaemon level i na container level. Spójrzmy na różne poziomy logowania.

Rejestrowanie demona

Na poziomie rejestrowania demona dostępne są cztery poziomy rejestrowania -

  • Debug - Zawiera szczegóły wszystkich możliwych informacji obsługiwanych przez proces demona.

  • Info - Zawiera szczegółowe informacje o wszystkich błędach + informacje obsługiwane przez proces demona.

  • Errors - Zawiera szczegółowe informacje o wszystkich błędach obsługiwanych przez proces demona.

  • Fatal - Wyszczególnia tylko wszystkie błędy krytyczne obsługiwane przez proces demona.

Wykonaj poniższe czynności, aby dowiedzieć się, jak włączyć rejestrowanie.

Step 1 - Najpierw musimy zatrzymać docker daemon process, jeśli już działa. Można to zrobić za pomocą następującego polecenia -

sudo service docker stop

Step 2 - Teraz musimy zacząć docker daemon process. Ale tym razem musimy dołączyć rozszerzenie–lparametr, aby określić opcję rejestrowania. Więc uruchommy następujące polecenie podczas uruchamianiadocker daemon process.

sudo dockerd –l debug &

Na temat powyższego polecenia należy zwrócić uwagę na następujące punkty -

  • dockerd jest plikiem wykonywalnym dla docker daemon process.

  • Plik –lOpcja służy do określenia poziomu rejestrowania. W naszym przypadku umieszczamy to jako debugowanie

  • & służy do powrotu do wiersza polecenia po włączeniu rejestrowania.

Po uruchomieniu procesu Docker z rejestrowaniem zobaczysz teraz również plik Debug Logs wysyłane do konsoli.

Teraz, jeśli wykonasz dowolne polecenie Dockera, takie jak docker images, informacje debugowania zostaną również przesłane do konsoli.

Rejestrowanie kontenerów

Rejestrowanie jest również dostępne na poziomie kontenera. W naszym przykładzie najpierw uruchommy kontener Ubuntu. Możemy to zrobić za pomocą następującego polecenia.

sudo docker run –it ubuntu /bin/bash

Teraz możemy użyć docker log command aby zobaczyć dzienniki kontenera.

Składnia

Docker logs containerID

Parametry

  • containerID - To jest identyfikator kontenera, dla którego musisz wyświetlić dzienniki.

Przykład

Na naszym hoście Docker wydajmy następujące polecenie. Wcześniej możesz wydawać polecenia będąc w kontenerze.

sudo docker logs 6bfb1271fcdd

Wynik

Na podstawie danych wyjściowych widać, że polecenia wykonywane w kontenerze są wyświetlane w dziennikach.

Docker Composesłuży do uruchamiania wielu kontenerów jako jednej usługi. Na przykład, załóżmy, że masz aplikację, która wymaga NGNIX i MySQL, możesz utworzyć jeden plik, który uruchomiłby oba kontenery jako usługę bez potrzeby uruchamiania każdego z nich osobno.

W tym rozdziale zobaczymy, jak rozpocząć pracę z Docker Compose. Następnie przyjrzymy się, jak uzyskać prostą usługę z MySQL i NGNIX działającymi przy użyciu Docker Compose.

Docker Compose ─ Instalacja

Aby uruchomić i uruchomić Docker Compose, należy wykonać następujące kroki.

Step 1 - Pobierz potrzebne pliki z github używając następującego polecenia -

curl -L "https://github.com/docker/compose/releases/download/1.10.0-rc2/dockercompose
   -$(uname -s) -$(uname -m)" -o /home/demo/docker-compose

Powyższe polecenie spowoduje pobranie najnowszej wersji Docker Compose, która w chwili pisania tego artykułu to 1.10.0-rc2. Następnie zapisze go w katalogu/home/demo/.

Step 2 - Następnie musimy zapewnić execute privileges do pobranego pliku Docker Compose, używając następującego polecenia -

chmod +x /home/demo/docker-compose

Następnie możemy użyć następującego polecenia, aby zobaczyć plik compose wersja.

Składnia

docker-compose version

Parametry

  • version - Służy do określenia, że ​​chcemy uzyskać szczegółowe informacje o wersji Docker Compose.

Wynik

Zostaną wyświetlone szczegóły wersji Docker Compose.

Przykład

Poniższy przykład pokazuje, jak uzyskać plik docker-compose wersja.

sudo ./docker-compose -version

Wynik

Otrzymasz wtedy następujące dane wyjściowe -

Tworzenie pierwszego pliku Docker-Compose

Teraz przejdźmy dalej i stwórzmy nasz pierwszy plik Docker Compose. Wszystkie pliki Docker Compose są plikami YAML. Możesz je utworzyć za pomocą edytora vim. Wykonaj więc następujące polecenie, aby utworzyć plikcompose plik -

sudo vim docker-compose.yml

Przyjrzyjmy się bliżej różnym szczegółom tego pliku -

  • Plik database i websłowa kluczowe służą do zdefiniowania dwóch oddzielnych usług. Jeden będzie prowadził naszmysql baza danych, a druga będzie nasza nginx serwer internetowy.

  • Plik image słowo kluczowe służy do określenia obrazu z dockerhub dla naszych mysql i nginx pojemniki

  • W przypadku bazy danych używamy słowa kluczowego portów, aby wspomnieć o portach, dla których należy udostępnić mysql.

  • Następnie określamy również zmienne środowiskowe dla mysql które są wymagane do uruchomienia mysql.

Teraz uruchommy nasz plik Docker Compose za pomocą następującego polecenia -

sudo ./docker-compose up

To polecenie zajmie docker-compose.yml plik w lokalnym katalogu i zacznij budować kontenery.

Po uruchomieniu rozpocznie się pobieranie wszystkich obrazów, a kontenery zostaną uruchomione automatycznie.

A kiedy zrobisz docker pswidać, że kontenery rzeczywiście działają.

Docker ma integracje z wieloma narzędziami Continuous Integrations, w tym z popularnym narzędziem CI znanym jako Jenkins. W Jenkinsie masz dostępne wtyczki, których można używać do pracy z kontenerami. Spójrzmy więc szybko na wtyczkę Docker dostępną dla narzędzia Jenkins.

Przejdźmy krok po kroku i zobaczmy, co jest dostępne w Jenkins dla kontenerów Docker.

Step 1 - Przejdź do pulpitu Jenkins i kliknij Manage Jenkins.

Step 2 - Idź do Manage Plugins.

Step 3- Wyszukaj wtyczki Docker. Wybierz wtyczkę Docker i kliknijInstall without restart przycisk.

Step 4- Po zakończeniu instalacji przejdź do swojego zadania w panelu sterowania Jenkins. W naszym przykładzie mamy zadanie o nazwieDemo.

Step 5 - W zadaniu, po przejściu do kroku Tworzenie, możesz teraz zobaczyć opcję uruchamiania i zatrzymywania kontenerów.

Step 6- Jako prosty przykład możesz wybrać dalszą opcję zatrzymywania kontenerów po zakończeniu budowy. Następnie kliknijSave przycisk.

Teraz po prostu uruchom swoją pracę w Jenkins. W danych wyjściowych konsoli będzie można teraz zobaczyć, że polecenie zatrzymania wszystkich kontenerów zostało uruchomione.

Kubernetes to platforma orkiestracji dla kontenerów Docker, która pomaga udostępniać kontenery jako usługi światu zewnętrznemu. Na przykład możesz mieć dwie usługi - jedna usługa będzie zawieraćnginx i mongoDBi inna usługa będzie zawierać nginx i redis. Każda usługa może mieć adres IP lub punkt usługowy, z którym mogą łączyć się inne aplikacje. Kubernetes jest następnie używany do zarządzania tymi usługami.

Poniższy diagram pokazuje w uproszczonym formacie, jak Kubernetes działa z punktu widzenia architektury.

Plik minionto węzeł, na którym działają wszystkie usługi. Możesz mieć wielu stronników działających w jednym momencie. Każdy stronnik będzie hostował jeden lub więcej POD. KażdyPODjest jak hosting usługi. Każdy POD zawiera następnie kontenery Docker. Każdy POD może obsługiwać inny zestaw kontenerów Docker. Serwer proxy jest następnie używany do kontrolowania udostępniania tych usług światu zewnętrznemu.

Kubernetes ma kilka komponentów w swojej architekturze. Rola każdego komponentu jest wyjaśniona poniżej & mius;

  • etcd - Ten komponent jest wysoce dostępny key-value sklep, który jest używany do przechowywania shared configuration i service discovery. Tutaj różne aplikacje będą mogły łączyć się z usługami za pośrednictwemdiscovery service.

  • Flannel - To jest sieć zaplecza, która jest wymagana dla kontenerów.

  • kube-apiserver - Jest to interfejs API, którego można użyć do organizowania kontenerów Docker.

  • kube-controller-manager - Służy do sterowania Kubernetes services.

  • kube-scheduler - Służy do planowania kontenerów na hostach.

  • Kubelet - Służy do kontrolowania uruchamiania kontenerów za pośrednictwem manifest files.

  • kube-proxy - Służy do świadczenia usług sieciowych proxy dla świata zewnętrznego.

W tym rozdziale zobaczymy, jak zainstalować Kubenetes przez kubeadm. To narzędzie, które pomaga w instalacji Kubernetes. Przejdźmy krok po kroku i dowiedzmy się, jak zainstalować Kubernetes.

Step 1 - Upewnij się, że Ubuntu server version nad którym pracujesz 16.04.

Step 2 - Upewnij się, że generujesz plik ssh klucz, którego można użyć do sshZaloguj sie. Możesz to zrobić za pomocą następującego polecenia.

ssh-keygen

Spowoduje to wygenerowanie klucza w Twoim home folder jak pokazano niżej.

Step 3 - Następnie, w zależności od posiadanej wersji Ubuntu, musisz dodać odpowiednią witrynę do pliku docker.list dla apt package manager, aby mógł wykryć plik Kubernetes packages z kubernetes witryny i odpowiednio je pobierz.

Możemy to zrobić za pomocą następujących poleceń.

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -  
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main” | sudo tee /etc/apt/sources.list.d/docker.list

Step 4 - Następnie wydajemy aktualizację apt-get, aby upewnić się, że wszystkie pakiety są pobierane na serwer Ubuntu.

Step 5 - Zainstaluj pakiet Docker zgodnie z opisem we wcześniejszych rozdziałach.

Step 6 - Teraz czas na instalację kubernetes instalując następujące pakiety -

apt-get install –y kubelet kubeadm kubectl kubernetes-cni

Step 7 - Raz wszystko kubernetes pakiety są pobierane, czas uruchomić kontroler kubernetes za pomocą następującego polecenia -

kubeadm init

Po zakończeniu otrzymasz pomyślny komunikat, że master jest uruchomiony i działa, a węzły mogą teraz dołączyć do klastra.