Ćwiczenie — pobieranie istniejącego obrazu platformy Docker i wdrażanie go w środowisku lokalnym

Ukończone

Dobrą metodą rozpoczęcia tworzenia i uruchamiania własnych obrazów platformy Docker jest pobranie istniejącego obrazu z usługi Docker Hub i uruchomienie go na komputerze lokalnym.

Jako dowód koncepcji aplikacji firmy decydujesz się na wypróbowanie uruchomienia przykładowego obrazu z usługi Docker Hub. Wybrany obraz implementuje podstawową aplikację internetową platformy .NET Core ASP.NET. Po utworzeniu procesu umożliwiającego wdrożenie obrazu platformy Docker będzie można uruchomić firmową aplikację internetową za pomocą platformy Docker.

W tym ćwiczeniu ściągniesz obraz z usługi Docker Hub i uruchomisz go. Sprawdzisz lokalny stan platformy Docker, aby lepiej zrozumieć, jakie elementy zostały wdrożone. Na koniec usuniesz kontener i obraz z komputera.

Ważne

To ćwiczenie jest wykonywane na komputerze, a nie na platformie Azure. Do wykonania kroków tego ćwiczenia potrzebna jest lokalna instalacja platformy Docker. Pobierz: https://docs.docker.com/desktop/install/windows-install/

Ściąganie przykładowej aplikacji z usługi Docker Hub i uruchamianie jej

  1. Uruchom platformę Docker na komputerze.

  2. Otwórz okno wiersza polecenia na komputerze lokalnym.

  3. Wprowadź następujący kod, aby ściągnąć obraz przykładowej aplikacji ASP.NET z rejestru usługi Docker Hub. Ten obraz zawiera przykładową aplikację internetową opracowaną przez firmę Microsoft i jest oparty na domyślnym szablonie ASP.NET dostępnym w programie Visual Studio.

    docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
    
  4. Wprowadź następujący kod, aby sprawdzić, czy obraz został zapisany lokalnie.

    docker image ls
    

    Powinno zostać wyświetlone repozytorium o nazwie mcr.microsoft.com/dotnet/samples z tagiem aspnetapp.

  5. Wprowadź następujący kod, aby uruchomić przykładową aplikację. Flaga -d polega na uruchomieniu go jako aplikacji nieinterakcyjnej w tle. Flaga -p służy do mapowania portu 8080 w kontenerze utworzonym na port 8080 lokalnie. To ustawienie ma na celu uniknięcie konfliktów z wszystkimi aplikacjami internetowymi, które są już uruchomione na komputerze. Odpowiedź polecenia będzie zawierać długi szesnastkowy identyfikator wystąpienia.

    docker run -d -p 8080:8080 mcr.microsoft.com/dotnet/samples:aspnetapp
    
  6. Otwórz przeglądarkę internetową i wprowadź adres URL przykładowej aplikacji internetowej: http://localhost:8080. Powinna zostać wyświetlona strona podobna do poniższego zrzutu ekranu:

    Zrzut ekranu przedstawiający przykładową aplikację internetową uruchomioną w przeglądarce.

Sprawdzanie kontenera w lokalnym rejestrze platformy Docker

  1. W wierszu polecenia uruchom następujące polecenie, aby wyświetlić uruchomione kontenery w rejestrze lokalnym.

    docker ps
    

    Dane wyjściowe powinny wyglądać mniej więcej tak:

    CONTAINER ID   IMAGE                                             COMMAND                  CREATED          STATUS          PORTS                  NAMES
    96c851831ade   mcr.microsoft.com/dotnet/samples:aspnetapp   "dotnet aspnetapp.dll"   22 minutes ago   Up 22 minutes   0.0.0.0:8080->80/tcp   eager_montalcini
    

    Pole COMMAND (Polecenie) zawiera kontener uruchomiony za pomocą polecenia dotnet aspnetapp.dll. To polecenie wywołuje środowisko uruchomieniowe .NET Core umożliwiające uruchomienie kodu z pliku aspnetapp.dll (kodu przykładowej aplikacji internetowej). Pole PORTY wskazuje, że port 8080 na obrazie został zamapowany na port 8080 na komputerze. Zawartość pola STATUS (Stan) informuje, że aplikacja wciąż działa. Zanotuj wartość pola NAME (Nazwa) kontenera.

  2. Uruchom następujące polecenie, aby zatrzymać kontener platformy Docker, zastępując symbol zastępczy <NAME> nazwą wyjściową z poprzedniego polecenia.

    docker container stop <NAME>
    
  3. Uruchom następujące polecenie, aby sprawdzić, czy kontener nie jest już uruchomiony. Flaga -a wskazuje, że polecenie pokazuje stan wszystkich kontenerów, a nie tylko kontenerów, które są uruchomione. Dane wyjściowe powinny zawierać stan kontenera jako Zakończono.

    docker ps -a
    
  4. W przeglądarce internetowej odśwież stronę przykładowej aplikacji internetowej (http://localhost:8080/). Powinien pojawić się błąd związany z odrzuceniem połączenia.

Usuń kontener i obraz z lokalnego rejestru

  1. Kontener został zatrzymany, ale wciąż jest załadowany i można uruchomić go ponownie. Uruchom następujące polecenie w oknie wiersza polecenia, aby go usunąć, zastępując <NAME> symbol zastępczy nazwą kontenera.

    docker container rm <NAME>
    
  2. Sprawdź, czy kontener został usunięty, uruchamiając następujące polecenie. W danych wyjściowych tego polecenia nazwa kontenera nie powinna już być widoczna.

    docker ps -a
    
  3. Wyświetl listę obrazów, które są aktualnie dostępne na komputerze. Dane wyjściowe powinny zawierać repozytorium przykładów.

    docker image ls
    
  4. Usuń obraz z rejestru.

    docker image rm mcr.microsoft.com/dotnet/samples:aspnetapp
    
  5. Dane wyjściowe powinny zawierać listę wielu elementów, które zostały nieoznakowane i usunięte. Uruchom następujące polecenie, aby ponownie wyświetlić listę obrazów i sprawdzić, czy obraz aplikacji internetowej microsoft/dotnet-samples zniknął.

    docker image ls