Instalacja i konfiguracja Dockera: stworzenie pierwszego kontenera

Główna różnica między maszyną wirtualną a kontenerem Docker polega na tym, że maszyna wirtualna musi zawierać cały system operacyjny, podczas gdy kontener Docker korzysta z systemu operacyjnego, w którym działa. Kontener zawiera rdzeń systemu operacyjnego, a nawet niektóre jego biblioteki.

Jeśli chodzi o zużycie procesora i pamięci RAM, kontenery znacznie wydajniej wykorzystują system hosta, wykorzystując tylko pamięć i moc obliczeniową, których ściśle potrzebują. Dzieje się tak, ponieważ kontener systemowy dzieli jądro i niektóre biblioteki, jak wspomniano wcześniej.

Inne znaczące korzyści z jego używania to:

  • Pozory zaczynają się w kilka sekund.
  • Jest łatwy do zautomatyzowania i wdrożenia w środowiskach ciągłej integracji.
  • Wiele obrazów można pobrać i edytować bezpłatnie.

Jako wady możemy wyróżnić:

  • Może być używany tylko natywnie w środowiskach Unix, chociaż można go zwirtualizować za pomocą boot2docker w systemach OSX i Windows.
  • Obrazy mogą być oparte tylko na nowoczesnych wersjach Linuksa (przynajmniej jądra 3.8).
  • Ponieważ jest stosunkowo nowy, mogą występować błędy kodu między wersjami.

Obrazy i kontenery

Warunki radzenia sobie z Dockerem to głównie 2, obrazy i kontenery. Obrazy można uznać za element statyczny, ponieważ nie są niczym innym jak podstawowym systemem operacyjnym z zestawem aplikacji. Kontener to migawka lub wykonanie obrazu, które może wykonać wiele kontenerów z jednego obrazu.

Montaż szafek

Przejdziemy do głównej strony Dockera i pobierzemy odpowiednią wersję dla naszego systemu operacyjnego. W moim przypadku ściągnę Wersja MacOS ten Po prostu przeciągnij ikonę Dockera do folderu Aplikacje.

Kiedy uruchamiamy Dockera po raz pierwszy, ze względów bezpieczeństwa musimy umieścić w systemie klucz startowy.

Po wykonaniu kroków instalacji otworzymy okno terminala. W takim przypadku uruchomimy polecenie Docker i pojawi się lista opcji.

Kroki tworzenia lekkiej wirtualizacji

Po prawidłowym zainstalowaniu Dockera zaczniemy się nim bawić, tak zrobimy Centrum Dockera który jest repozytorium gotowych gotowych obrazów (innymi słowy obrazów GitHub). DockerHub zawiera oficjalne obrazy dla postgresql, redis, mysql, ubuntu, rabbitmq, sonarqube, mongodb, a także wiele obrazów, które użytkownicy tworzą i przesyłają do repozytorium.

W tym przykładzie użyjemy oficjalnego obrazu sonarqube utwórz kontener z zainstalowanym Sonarem. W repozytorium sonarqube , umysł znajdą informacje związane z obrazem i jego wykorzystaniem, mniej więcej to, co opisujemy poniżej.

Pierwszym krokiem byłoby pobranie obrazu:

docker pull sonarqube

Możemy wyświetlić listę obrazów, które mamy na naszym komputerze, za pomocą następującego polecenia:

docker images

Teraz, gdy mamy już obraz, jesteśmy gotowi do utworzenia z niego kontenera. To polecenie zwiększa kontener o następujące parametry:

docker run -d --name sonarqube -p 9000:9000 sonarqube

  • -d: Podnieś pojemnik w tle
  • –Nazwa: nazwa powiązana z kontenerem
  • -s: Mapujemy port 9000 naszego sprzętu z kontenera 9000

Możemy kontrolować, które kontenery są podnoszone:

docker ps

Aby uzyskać dostęp do sonaru zainstalowanego w kontenerze, wystarczy otworzyć przeglądarkę o adresie URL http://localhost:9000.

docker inspect <containerID>

Mamy teraz dostęp do naszego sonaru, jak pokazano poniżej:

A jeśli potrzebujemy innego sonaru? No nic, proponujemy obrazek do stworzenia kolejnego kontenera.

Wystarczy zmienić nazwę portu i mapowanie, ponownie sprawdzić aktywne kontenery… i mamy nasze dwa kontenery:

docker run -d --name sonarqube2 -p 7000:9000 sonarqube
docker ps

Mamy dostęp do nowego sonaru:

Możesz zatrzymać kontener za pomocą polecenia „docker stop sonarqube”, jak pokazano poniżej:

Gdy tylko sonarqube2 pozostanie aktywne, możemy wyświetlić listę kontenerów niezależnie od ich stanu za pomocą:

docker ps -a

Aby usunąć kontener, musimy wykonać następujące polecenie:

docker rm sonarqube
docker rm sonarqube2

Pamiętaj, że usuwając kontener, utracimy wprowadzone w nim zmiany. Jedną z opcji, jaką mielibyśmy, gdybyśmy chcieli, aby zmiany, które wprowadzamy w kontenerze były trwałe, byłoby utworzenie obrazu kontenera, więc wykonalibyśmy następujące czynności:

docker commit -m "<comentario>" -a "<autor>" <id_contenedor> <nombre_imagen>:<etiqueta_imagen>

Plik dockera

W ostatniej sekcji zobaczymy, jak utworzyć nowy obraz za pomocą pliku o nazwie Dockerfile. Dockerfile to po prostu plik tekstowy, który pozwala nam zdefiniować instrukcje, które należy wykonać, aby utworzyć obraz, innymi słowy, jest jak przepis na tworzenie naszych obrazów, które później posłużą do wykonania naszych kontenerów.

W tym przykładzie stworzymy obraz z systemem operacyjnym Ubuntu i zainstalujemy serwer WWW Apache, dla którego mamy plik Dockerfile:

FROM ubuntu

MAINTAINER Redes Zone

ENV http_proxy http://user:pass@proxy/

ENV https_proxy http://user:pass@proxy/

RUN apt-get update

RUN apt-get install apache2 -y

RUN echo "<h1>Apache with Docker</h1>" > /var/www/html/index.html

EXPOSE 80

ENTRYPOINT apache2ctl -D FOREGROUND

Opiszmy teraz polecenia Dockerfile:

  • Z : Wskazuje obraz, który przyjmujemy jako podstawę, w tym przypadku oficjalny obraz Ubuntu
  • OBSERWACJA : Określa autora obrazu.
  • ENV : Zdefiniowaliśmy kilka zmiennych środowiskowych w obrazie podstawowym.
    • http_proxy http: // user: pass @ proxy / – Zdefiniuj zmienną http_proxy
    • https_proxy http: // user: pass @ proxy / – Zdefiniuj zmienną https_proxy
  • BIEGAĆ : Postępuj zgodnie z instrukcjami na podstawowym obrazie
    • aktualizacja apt-get: aktualizacja repozytorium Ubuntu
    • apt -get install apache2 -y: Zainstaluj Apache
    • Echo „Apache z Dockerem”> /Var/www/html/index.html: tworzy index.html
  • RAPORT Odp .: Zapewnij drzwi kontenera 80, aby można je było zmapować przez urządzenie odbierające.
  • WEJŚCIE : Wskazujemy, że apache2ctl -D FOREGROUND powinien być uruchamiany przy każdym uruchomieniu kontenera.

Po zdefiniowaniu Dockerfile stworzymy obraz:

docker build –t redeszone/apache.

Mówimy dockerowi, aby utworzył obraz o nazwie redeszone / apache z DockerFile, który znajduje się na tej samej ścieżce, w której uruchamiamy polecenie.

Cytujemy dostępne zdjęcia:

Jesteśmy teraz gotowi do uruchomienia kontenera z utworzonego przez nas obrazu:

docker run --name apache1 -d -p 90:80 redeszone/apache

Uruchamiamy kontener, który nazwiemy apache1, mapując port kontenera 80 na port naszej maszyny 90 z obrazu redeszone/apache.

Do tej pory dotarliśmy do tego samouczka Dockera, jak widać, na pierwszy rzut oka może się to wydawać nieco skomplikowane, ale gdy nauczymy się podstaw, wirtualizacja kontenerów jest naprawdę łatwa, szybka i bardzo skuteczna.

Dodaj komentarz