Wyszukiwanie w witrynie

Zainstaluj Docker i naucz się podstawowej manipulacji kontenerami w CentOS i RHEL 8/7 — część 1


W tej serii czterech artykułów omówimy Docker, czyli lekkie narzędzie do wirtualizacji typu open source, które działa na najwyższym poziomie systemu operacyjnego, umożliwiając użytkownikom tworzenie, uruchamianie i wdrażanie aplikacji zamkniętych w małych pojemniki.

Udowodniono, że tego typu kontenery Linux są szybkie, przenośne i bezpieczne. Procesy działające w kontenerze Docker są zawsze odizolowane od głównego hosta, co zapobiega ingerencji z zewnątrz.

Ten samouczek stanowi punkt wyjścia do instalacji Dockera, tworzenia i uruchamiania kontenerów Dockera na CentOS/RHEL 8/7, ale ledwo zarysowuje powierzchnię Dockera.

Krok 1: Zainstaluj i skonfiguruj Docker

1. Wcześniejsze wersje Dockera nazywały się docker lub docker-engine, jeśli masz je zainstalowane, musisz odinstaluj je przed zainstalowaniem nowszej wersji docker-ce.

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2. Aby zainstalować najnowszą wersję Docker Engine, musisz skonfigurować repozytorium Docker i zainstalować pakiet yum-utils, aby włączyć Docker stabilne repozytorium w systemie.

yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

3. Teraz zainstaluj nowszą wersję docker-ce z repozytorium Docker i ręcznie containerd, ponieważ z powodu pewnych problemów Red Hat zablokował instalację z containerd.io > 1.2.0-3.el7, co jest zależnością od docker-ce.

yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum install docker-ce docker-ce-cli

4. Po zainstalowaniu pakietu Docker uruchom demona, sprawdź jego status i włącz go w całym systemie za pomocą poniższych poleceń:

systemctl start docker 
systemctl status docker
systemctl enable docker

5. Na koniec uruchom obraz testowy kontenera, aby sprawdzić, czy Docker działa poprawnie, wydając następujące polecenie:

docker run hello-world

Jeśli widzisz poniższy komunikat, oznacza to, że wszystko jest na właściwym miejscu.

Przykładowe wyjście
Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

6. Teraz możesz uruchomić kilka podstawowych poleceń Dockera, aby uzyskać informacje o Dockerze:

Aby uzyskać informacje o całym systemie na temat platformy Docker
docker info

Dla wersji Docker
docker version

7. Aby wyświetlić listę wszystkich dostępnych poleceń Dockera, wpisz docker na konsoli.

docker

Krok 2: Pobierz obraz Dockera

8. Aby uruchomić i uruchomić kontener Docker, najpierw należy pobrać obraz z Docker Hub na hoście. Docker Hub oferuje wiele bezpłatnych obrazów ze swoich repozytoriów.

Aby na przykład wyszukać obraz Dockera, w Ubuntu wydaj następujące polecenie:

docker search ubuntu

9. Po wybraniu obrazu, który chcesz uruchomić w zależności od potrzeb, pobierz go lokalnie, uruchamiając poniższe polecenie (w tym przypadku pobierany i używany jest obraz Ubuntu ):

docker pull ubuntu

10. Aby wyświetlić listę wszystkich dostępnych obrazów Dockera na hoście, wydaj następujące polecenie:

docker images

11. Jeśli nie potrzebujesz już obrazu Dockera i chcesz go usunąć z hosta, wydaj następujące polecenie:

docker rmi ubuntu

Krok 3: Uruchom kontener Docker

Kiedy wykonujesz polecenie na obrazie, zasadniczo otrzymujesz kontener. Po zakończeniu polecenia wykonywanego w kontenerze, kontener zatrzymuje się (otrzymujesz nieuruchomiony lub zamknięty kontener). Jeśli ponownie uruchomisz inne polecenie na tym samym obrazie, zostanie utworzony nowy kontener i tak dalej.

Wszystkie utworzone kontenery pozostaną w systemie plików hosta, dopóki nie zdecydujesz się ich usunąć za pomocą polecenia docker rm.

12. Aby utworzyć i uruchomić kontener, musisz uruchomić polecenie na pobranym obrazie, w tym przypadku Ubuntu, więc podstawowym poleceniem byłoby wyświetlenie plik wersji dystrybucyjnej w kontenerze za pomocą polecenia cat, jak w poniższym przykładzie:

docker run ubuntu cat /etc/issue

Powyższe polecenie jest podzielone w następujący sposób:

docker run [local image] [command to run into container]

13. Aby ponownie uruchomić jeden z kontenerów za pomocą polecenia, które zostało wykonane w celu jego utworzenia, należy najpierw uzyskać identyfikator kontenera ID (lub nazwę automatycznie wygenerowaną przez Dockera) wydając poniższe polecenie, które wyświetla listę uruchomionych i zatrzymanych (niedziałających) kontenerów:

docker ps -l 

14. Po uzyskaniu ID kontenera możesz ponownie uruchomić kontener za pomocą polecenia użytego do jego utworzenia, wydając następującą komendę:

docker start 923a720da57f

Tutaj ciąg 923a720da57f reprezentuje ID kontenera.

15. Jeśli kontener jest uruchomiony, możesz uzyskać jego ID, wydając polecenie docker ps. Aby zatrzymać działający kontener, wydaj komendę docker stop, podając ID kontenera lub automatycznie wygenerowaną nazwę.

docker stop 923a720da57f
OR
docker stop cool_lalande
docker ps

16. Bardziej elegancką alternatywą, dzięki której nie musisz pamiętać ID kontenera, byłoby przypisanie każdemu utworzonemu kontenerowi unikalnej nazwy za pomocą - -name w wierszu poleceń, jak w poniższym przykładzie:

docker run --name ubuntu20.04 ubuntu cat /etc/issue

17. Następnie, korzystając z nazwy nadanej kontenerowi, możesz manipulować kontenerem (start, stop, usuń, góra, statystyki) dalej, po prostu odnosząc się do jego nazwy, jak w poniższych przykładach:

docker start ubuntu20.04
docker stats ubuntu20.04
docker top ubuntu20.04 

Należy pamiętać, że niektóre z powyższych poleceń mogą nie wyświetlać żadnych danych wyjściowych, jeśli proces polecenia użytego do utworzenia kontenera zakończy się. Kiedy proces przebiegający wewnątrz kontenera zakończy się, kontener zatrzymuje się.

Krok 4: Uruchom sesję interaktywną w kontenerze

18. Aby interaktywnie połączyć się z sesją powłoki kontenera i uruchamiać polecenia tak jak w każdej innej sesji systemu Linux, wydaj następujące polecenie:

docker run -it ubuntu bash

Powyższe polecenie jest podzielone w następujący sposób:

  1. -i służy do rozpoczęcia sesji interaktywnej.
  2. -t przydziela TTY i dołącza stdin i stdout.
  3. ubuntu to obraz, którego użyliśmy do utworzenia kontenera.
  4. bash (lub /bin/bash) to polecenie, które uruchamiamy w kontenerze Ubuntu.

19. Aby zakończyć i powrócić do hosta z uruchomionej sesji kontenera, musisz wpisać polecenie exit. Polecenie exit kończy wszystkie procesy kontenerowe i zatrzymuje je.

exit

20. Jeśli jesteś interaktywnie zalogowany w wierszu terminala kontenerowego i chcesz utrzymać kontener w stanie uruchomionym, ale wyjdź z sesji interaktywnej, możesz zakończyć< konsolę i wróć do terminala hosta, naciskając klawisze Ctrl+p i Ctrl+q.

21. Aby ponownie połączyć się z działającym kontenerem, potrzebujesz ID lub nazwy kontenera. Wydaj polecenie docker ps, aby uzyskać ID lub nazwę, a następnie uruchom polecenie docker załącznik, określając kontener ID lub name, jak pokazano na powyższym obrazku:

docker attach <container id>

22. Aby zatrzymać uruchomiony kontener w sesji hosta, wydaj następującą komendę:

docker kill <container id>

To wszystko, jeśli chodzi o podstawową manipulację kontenerami. W następnym samouczku omówimy, jak zapisać, usunąć i uruchomić serwer WWW w kontenerze Docker.