Jak korzystać z kontenerów Docker

Jak korzystać z kontenerów Docker
Zdjęcie osoby programującej na laptopie.

Kontenery są siłą napędową każdej instalacji Dockera. Stanowią fundament platformy Docker i pozwalają uruchamiać usługi na komputerze bez obaw o zależności i konflikty wersji. Tutaj pokazujemy podstawy tworzenia, zarządzania i dostosowywania kontenerów Dockera za pomocą narzędzia Docker CLI.

Jak znaleźć i pobrać obraz Dockera

Kontenery Dockera to specjalny rodzaj środowiska programistycznego, który umożliwia uruchamianie programów oddzielnie od reszty oryginalnego systemu. Aby to osiągnąć, Docker używa „obrazów oprogramowania”. Są to statyczne kopie programów, które służą jako baza, od której rozpoczyna się kontener.

To rozróżnienie między obrazem a kontenerem pozwala na ponowne tworzenie i dostosowywanie oprogramowania w dowolny niezbędny sposób. Na przykład możesz mieć obraz taki jak „httpd”, ale utworzyć z niego dwa odrębne kontenery: „website1” i „website2”.

Najprostszym sposobem na uzyskanie nowego obrazu Dockera jest użycie searchpodpolecenia:

Terminal podświetlający obraz httpd Docker z poziomu narzędzia CLI.
Zrzut ekranu przedstawiający obraz httpd Docker ze strony internetowej Docker Hub.

Aby pobrać obraz na swój system, uruchom następujące polecenie:

Potwierdź, że poprawnie dodałeś nowy obraz do systemu, korzystając z podpolecenia images:

Terminal podświetlający zainstalowany obraz httpd Docker w systemie.

Tworzenie nowego obrazu przy użyciu plików Dockerfile

Oprócz pobierania wstępnie skompilowanych obrazów z Docker Hub, możesz budować obrazy bezpośrednio z Docker CLI. Jest to przydatne, jeśli chcesz tworzyć niestandardowe wersje istniejących pakietów oprogramowania lub przenosisz nowe aplikacje do Docker.

Aby to zrobić, najpierw utwórz folder w swoim katalogu domowym, w którym będą przechowywane pliki kompilacji:

Utwórz nowy plik Dockerfile przy użyciu ulubionego edytora tekstu:

Wklej następujące wiersze kodu do nowego pliku Dockerfile:

Terminal pokazujący przykładową konfigurację Dockerfile dla niestandardowego obrazu Nginx.

Utwórz folder „sample-site” i skopiuj go lub utwórz prostą witrynę HTML:

Zapisz nowy plik Dockerfile, a następnie uruchom następujące polecenie, aby skompilować go w swoim systemie:

Sprawdź, czy nowy obraz Docker znajduje się na liście obrazów Docker:

Terminal podświetlający niestandardowy obraz wygenerowany za pomocą polecenia build.

Tworzenie nowego obrazu przy użyciu istniejących kontenerów

Narzędzie Docker CLI może również budować nowe obrazy z kontenerów, które obecnie istnieją w systemie. Jest to przydatne, jeśli pracujesz już w istniejącym środowisku i chcesz utworzyć nowy obraz z bieżącej konfiguracji.

Aby to zrobić, upewnij się, że kontener nie jest aktualnie uruchomiony:

Uruchom commitpodpolecenie, po którym należy podać nazwę kontenera, a następnie nazwę nowego obrazu Docker:

Terminal pokazujący podpolecenie commit tworzące nowy obraz z kontenera Docker.

Sprawdź, czy nowy obraz Dockera znajduje się w systemie, uruchamiając polecenie docker images.

Terminal podświetlający nowy obraz niestandardowy z kontenera Docker zainstalowanego w systemie.

Jak uruchomić i zatrzymać kontener Docker

Mając gotowy obraz Dockera, możesz zacząć go używać do tworzenia pierwszego kontenera. Aby to zrobić, użyj podpolecenia, runa następnie nazwy obrazu, który chcesz uruchomić:

Chociaż to zadziała w przypadku uruchomienia pierwszego kontenera Docker, wykonanie tego w ten sposób spowoduje przejęcie bieżącej sesji powłoki. Aby uruchomić kontener w tle, dołącz flagę -dpo runpodkomendzie:

Podpolecenie runmoże również przyjąć szereg dodatkowych flag, które mogą zmienić zachowanie nowego kontenera Docker. Na przykład flaga --nameumożliwia dodanie dostosowywalnej nazwy do kontenera:

Z drugiej strony możesz użyć --publishflagi, aby przekierować port sieciowy, gdzie możesz uzyskać dostęp do swojego kontenera Docker. Jest to przydatne przede wszystkim, jeśli nie chcesz, aby Twój kontener przejmował uprzywilejowany port:

Zrzut ekranu przedstawiający przeglądarkę internetową otwierającą witrynę hostowaną w niestandardowym kontenerze Docker.

Możesz sprawdzić wszystkie aktualnie uruchomione w systemie kontenery Docker, uruchamiając następujące polecenie:

Podobnie jak runpodpolecenie, psmoże również przyjąć kilka flag, które zmodyfikują sposób jego zachowania. Na przykład, aby wyświetlić kontenery, które są obecnie wyłączone, użyj flagi -a:

Aby wyłączyć działający kontener, użyj stoppodpolecenia, po którym należy podać identyfikator kontenera lub jego nazwę:

Terminal pokazujący proces wyłączania aktualnie uruchomionego kontenera Docker.

Możesz ponownie uruchomić dowolny zatrzymany kontener, uruchamiając ponownie podpolecenie start:

Wstrzymywanie i zamykanie kontenera Docker

Narzędzie Docker CLI umożliwia również tymczasowe wstrzymanie i zabicie uruchomionego procesu kontenera. Może się to przydać, jeśli rozwiązujesz problem z konfiguracją Dockera i chcesz odizolować lub zatrzymać nieprawidłowo działający kontener.

Zacznij od uruchomienia docker pslisty wszystkich uruchomionych kontenerów w systemie.

Znajdź identyfikator lub nazwę kontenera, którym chcesz zarządzać.

Terminal podświetlający niestandardowy kontener Docker aktualnie uruchomiony w systemie.

Uruchom pausepodpolecenie, podając nazwę kontenera, który chcesz tymczasowo zawiesić:

Możesz wznowić zawieszony proces, uruchamiając unpausepodpolecenie:

Aby zatrzymać nieprawidłowo działający proces, uruchom killpodpolecenie, a następnie nazwę swojego kontenera:

Jak sprawdzić kontener Docker

Znajomość zawiłych szczegółów kontenera jest kluczowa dla utrzymania kondycji stosu Docker. Pozwala szybko przyjrzeć się potencjalnym problemom i może być różnicą między naprawą a ponownym wykonaniem całego wdrożenia.

Aby wyświetlić przegląd kontenera Docker, uruchom podpolecenie inspect:

Spowoduje to wydrukowanie długiego ciągu JSON opisującego aktualny stan całego kontenera. Możesz zawęzić to, przekazując dane wyjściowe do jq lub używając wbudowanej -fflagi, a następnie obiektu JSON, który chcesz wydrukować:

Terminal pokazujący flagę filtru dla podpolecenia inspect w działającym kontenerze Docker.

Drukowanie dzienników kontenerów do terminala

Oprócz tego możesz również śledzić i drukować logi dowolnego aktualnie uruchomionego kontenera Docker. Może to być przydatne, jeśli chcesz sprawdzić, jak obecnie zachowuje się Twoja usługa i zobaczyć dane wyjściowe, które zwraca do STDOUT.

Aby to zrobić, uruchom podpolecenie logs, a następnie nazwę swojego kontenera:

Możesz również uruchomić podpolecenie logs z --followflagą, aby utworzyć ciągły dziennik usługi Docker. Jest to podobne do uruchamiania tail -fna końcu potoku UNIX:

Terminal wyświetlający ciągłe logi kontenera Docker.

Podobnie jak w przypadku innych podpoleceń, możesz również dodać różne flagi, aby dostosować dane wyjściowe dziennika kontenera Docker. Na przykład flaga --timestampsdodaje szczegółowy znacznik czasu dla każdej wiadomości, którą kontener wysyła do swojego STDOUT:

Flaga --detailswydrukuje nawet zmienne środowiskowe, które ustawiłeś dla swojego bieżącego kontenera Docker. Tymczasem flaga --sincepozwala ci wyświetlać tylko logi, które wydarzyły się po określonym punkcie w czasie:

Terminal wyświetlający bardziej szczegółowe dane wyjściowe dziennika z aktualnie uruchomionego kontenera Docker.

Jak dostosować kontener Docker

W swojej istocie Docker Container to mała, uproszczona wersja Linuksa działająca na Twoim obecnym systemie. Oznacza to, że podobnie jak w przypadku maszyny wirtualnej, można uzyskać dostęp do danych w kontenerze i je pobrać.

Aby skopiować plik lokalny z komputera hosta do kontenera, uruchom cppodpolecenie:

Czasami będziesz musiał również „wejść” do kontenerów, otwierając w nich powłokę. W ten sposób możesz edytować pliki, instalować pliki binarne i dostosowywać je do swoich potrzeb:

Terminal pokazujący proces przechodzenia do powłoki głównej kontenera.

Teraz możesz na przykład edytować „index.html” i utworzyć w nim stronę główną witryny.

Terminal pokazujący plik HTML skopiowany do powłoki głównej kontenera Docker.

Aby opuścić powłokę kontenera, należy nacisnąć klawisz Ctrl+ Dlub uruchomić exitterminal.

Terminal podświetlający polecenie wyjścia z powłoki głównej kontenera Docker.

Jak usunąć kontenery i obrazy Docker

Usuwanie nieużywanych kontenerów Docker i obrazów jest ważną częścią ogólnego sprzątania wdrożenia. Dzięki temu możesz usunąć niepotrzebne pliki z serwera, oszczędzając miejsce na dysku w dłuższej perspektywie.

Zanim usuniesz kontener, upewnij się, że go najpierw zatrzymałeś:

Teraz usuń kontener za pomocą rmpodpolecenia:

Potwierdź, że prawidłowo usunąłeś stary kontener Docker, uruchamiając docker ps -a.

Terminal pokazujący wszystkie dostępne kontenery Docker, łącznie z tymi aktualnie wyłączonymi.

Usuń oryginalny obraz Dockera ze swojego wdrożenia Dockera:

Terminal podświetlający dane wyjściowe usunięcia obrazu Docker z systemu.

Sprawdź, czy prawidłowo usunąłeś oryginalny obraz Dockera, uruchamiając docker images.

Terminal pokazujący zaktualizowaną listę obrazów Docker.

Nauczysz się, jak tworzyć, zarządzać i usuwać kontenery Docker – to tylko niektóre z umiejętności, które możesz wykorzystać na swoim serwerze Linux.

Źródło obrazu: Shamin Haky przez Unsplash . Wszystkie zmiany i zrzuty ekranu autorstwa Ramces Red.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *