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 -
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.