w tej serii 4 artykułów omówimy Docker, który jest lekkim narzędziem do wirtualizacji 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 kontenerach.
ten typ kontenerów Linuksowych okazał się szybki, przenośny i bezpieczny. Procesy uruchamiane 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 je odinstalować 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ę silnika Dockera, należy skonfigurować repozytorium Dockera i zainstalować pakiet yum-utils, aby włączyć stabilne repozytorium Dockera 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 Dockera i containerd ręcznie, ponieważ z powodu pewnych problemów Red Hat zablokował instalację containerd.io > 1.2.0-3.el7
, która 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 Dockera Uruchom demona, sprawdź jego status i włącz system IT 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, wszystko jest we 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 bashShare 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:
For system-wide information on Docker
# docker info
For Docker version
# docker version
7. To get a list of all available Docker commands type docker on your console.
# 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 darmowych obrazów ze swoich repozytoriów.
aby wyszukać obraz dokera, na przykład, wykonaj następujące polecenie:
# docker search ubuntu
9. Po podjęciu decyzji, jaki obraz chcesz uruchomić w oparciu o swoje potrzeby, pobierz go lokalnie, uruchamiając poniższe polecenie (w tym przypadku pobierany jest i używany obraz Ubuntu):
# docker pull ubuntu
10. Aby wyświetlić wszystkie dostępne obrazy Dockera na Twoim hoście, wykonaj następujące polecenie:
# docker images
11. Jeśli nie potrzebujesz już obrazu Dockera i chcesz go usunąć z wydania hosta, wykonaj następujące polecenie:
# docker rmi ubuntu
Krok 3: Uruchom kontener Docker
kiedy wykonujesz polecenie na obrazie, w zasadzie otrzymujesz kontener. Po zakończeniu polecenia wykonywanego w kontenerze, kontener zatrzymuje się (otrzymujesz nie działający lub opuszczony kontener). Jeśli ponownie uruchomisz inne polecenie na tym samym obrazie, zostanie utworzony nowy kontener i tak dalej.
wszystkie utworzone kontenery pozostaną na systemie plików hosta, dopóki nie zdecydujesz się je usunąć za pomocą polecenia docker rm
.
12. Aby utworzyć i uruchomić kontener, musisz uruchomić polecenie do pobranego obrazu, w tym przypadku Ubuntu, więc podstawową komendą byłoby wyświetlenie Pliku wersji dystrybucji wewnątrz kontenera 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
13. Aby ponownie uruchomić jeden z kontenerów za pomocą polecenia, które zostało wykonane w celu jego utworzenia, najpierw musisz uzyskać identyfikator kontenera (lub Nazwę automatycznie wygenerowaną przez Docker), wydając poniższe polecenie, które wyświetla listę uruchomionych i zatrzymanych (nie działających) kontenerów:
# docker ps -l
14. Po uzyskaniu identyfikatora kontenera można ponownie uruchomić kontener za pomocą polecenia, które zostało użyte do jego utworzenia, wydając następujące polecenie:
# docker start 923a720da57f
tutaj łańcuch 923a720da57f
reprezentuje identyfikator kontenera.
15. Jeśli kontener jest uruchomiony, możesz uzyskać jego identyfikator, wydając poleceniedocker ps
. Aby zatrzymać problem z uruchomionym konteneremdocker stop
, podając ID kontenera lub automatycznie wygenerowaną nazwę.
# docker stop 923a720da57fOR# docker stop cool_lalande# docker ps
16. Bardziej elegancką alternatywą, dzięki której nie musisz pamiętać identyfikatora kontenera, byłoby przydzielenie unikalnej nazwy dla każdego utworzonego kontenera za pomocą opcji--name
w wierszu poleceń, jak w poniższym przykładzie:
# docker run --name ubuntu20.04 ubuntu cat /etc/issue
17. Następnie, używając nazwy przypisanej do kontenera, możesz manipulować kontenerem (start, stop, remove, top, stats) dalej tylko przez adresowanie 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ć żadnego wyniku, jeśli proces polecenia użytego do utworzenia kontenera zakończy się. Gdy proces przebiegający wewnątrz pojemnika zakończy się, pojemnik zatrzyma się.
Krok 4: Uruchom interaktywną sesję do kontenera
18. Aby interaktywnie połączyć się z sesją powłoki kontenera i uruchomić polecenia tak jak w każdej innej sesji Linuksa, wydaj następujące polecenie:
# docker run -it ubuntu bash
powyższe polecenie dzieli się następująco:
-
-i
służy do rozpoczęcia sesji interaktywnej. -
-t
przydziela TTY i dołącza stdin i stdout. -
ubuntu
to obraz, którego użyliśmy do utworzenia kontenera. -
bash
(lub/bin / bash) jest poleceniem, które uruchamiamy wewnątrz kontenera Ubuntu.
19. Aby zakończyć i powrócić do hosta z uruchomionej sesji kontenera, należy wpisać polecenieexit
. Polecenie exit kończy wszystkie procesy kontenera i zatrzymuje je.
# exit
20. Jeśli jesteś interaktywnie zalogowany w monicie Terminala Kontenerowego i musisz zachować kontener w stanie działania, ale wyjść z sesji interaktywnej, możesz zamknąć konsolę i powrócić do terminala hosta, naciskając klawisze Ctrl+p
I Ctrl+q
.
21. Aby ponownie połączyć się z uruchomionym kontenerem, potrzebujesz identyfikatora lub nazwy kontenera. Wydaj poleceniedocker ps
, aby uzyskać identyfikator lub nazwę, a następnie uruchom poleceniedocker attach
, podając identyfikator lub nazwę kontenera, jak pokazano na powyższym obrazku:
# docker attach <container id>
22. Aby zatrzymać uruchomiony kontener z sesji hosta, wykonaj następujące polecenie:
# docker kill <container id>
to wszystko do podstawowej manipulacji kontenerem. W następnym samouczku omówimy, jak zapisać, usunąć i uruchomić serwer WWW w kontenerze Docker.