Omówienie usługi Python Container Apps na platformie Azure

W tym artykule opisano sposób przechodzenia z kodu projektu w języku Python (na przykład aplikacji internetowej) do wdrożonego kontenera platformy Docker na platformie Azure. Omówiono ogólny proces konteneryzacji, opcji wdrażania kontenerów na platformie Azure i konfiguracji kontenerów specyficznych dla języka Python na platformie Azure.

Charakter kontenerów platformy Docker polega na tym, że tworzenie obrazu platformy Docker na podstawie kodu i wdrażanie tego obrazu w kontenerze na platformie Azure jest podobne w różnych językach programowania. Zagadnienia specyficzne dla języka — python w tym przypadku — są w konfiguracji podczas procesu konteneryzacji na platformie Azure, w szczególności struktury i konfiguracji pliku Dockerfile obsługującej platformy internetowe języka Python, takie jak Django, Flask i FastAPI.

Scenariusze przepływu pracy kontenera

W przypadku programowania kontenerów w języku Python typowe przepływy pracy związane z przechodzeniem z kodu do kontenera to:

Scenariusz opis Przepływ pracy
Dev Tworzenie obrazów platformy Docker w języku Python w środowisku deweloperskim. Kod: git clone code to dev environment (z zainstalowaną platformą Docker).

Kompilacja: użyj interfejsu wiersza polecenia platformy Docker, programu VS Code (z rozszerzeniami), PyCharm (z wtyczką). Opisano w sekcji Praca z obrazami i kontenerami platformy Docker w języku Python.

Test: w środowisku deweloperskim w kontenerze platformy Docker.

Wypychanie: do rejestru, takiego jak Azure Container Registry, Docker Hub lub prywatny rejestr.

Wdrażanie: w usłudze platformy Azure z rejestru.
Hybrydowe Z poziomu środowiska deweloperskiego utwórz obrazy platformy Docker w języku Python na platformie Azure. Kod: git clone code to dev environment (nie jest konieczne, aby platforma Docker została zainstalowana).

Kompilacja: PROGRAM VS Code (z rozszerzeniami), interfejs wiersza polecenia platformy Azure.

Wypychanie: do usługi Azure Container Registry

Wdrażanie: w usłudze platformy Azure z rejestru.
Azure Wszystko w chmurze; użyj usługi Azure Cloud Shell, aby skompilować kod obrazów platformy Docker w języku Python z repozytorium GitHub. Kod: repozytorium git clone GitHub do usługi Azure Cloud Shell.

Kompilacja: w usłudze Azure Cloud Shell użyj interfejsu wiersza polecenia platformy Azure lub interfejsu wiersza polecenia platformy Docker.

Wypychanie: do rejestru, takiego jak Azure Container Registry, Docker Hub lub prywatny rejestr.

Wdrażanie: w usłudze platformy Azure z rejestru.

Celem końcowym tych przepływów pracy jest posiadanie kontenera uruchomionego w jednym z zasobów platformy Azure obsługujących kontenery platformy Docker, jak pokazano w następnej sekcji.

Środowisko deweloperskie może być lokalną stacją roboczą za pomocą programu Visual Studio Code lub PyCharm, Codespaces (środowiska programistycznego hostowanego w chmurze) lub Visual Studio Dev Containers (kontenera jako środowiska programistycznego).

Opcje kontenera wdrażania na platformie Azure

Aplikacje kontenera języka Python są obsługiwane w następujących usługach.

Usługa opis
Web App for Containers W pełni zarządzana usługa hostingu dla konteneryzowanych aplikacji internetowych, w tym witryn internetowych i internetowych interfejsów API. Konteneryzowane aplikacje internetowe w usłudze aplikacja systemu Azure mogą być skalowane w zależności od potrzeb i korzystać z usprawnionych przepływów pracy ciągłej integracji/ciągłego wdrażania za pomocą usług Docker Hub, Azure Container Registry i GitHub. Idealnym rozwiązaniem jest łatwe w obsłudze dla deweloperów korzystanie z w pełni zarządzanej platformy usługi aplikacja systemu Azure Service, ale którzy chcą również pojedynczego artefaktu z możliwością wdrożenia zawierającego aplikację i wszystkie jej zależności.

Przykład: wdrażanie aplikacji internetowej platformy Flask lub FastPI w usłudze aplikacja systemu Azure Service.
Azure Container Apps (ACA) W pełni zarządzana bezserwerowa usługa kontenera obsługiwana przez platformę Kubernetes i technologie open source, takie jak Dapr, KEDA i wysłannik. W oparciu o najlepsze rozwiązania i zoptymalizowane pod kątem kontenerów ogólnego przeznaczenia. Infrastruktura klastra jest zarządzana przez usługę ACA i bezpośredni dostęp do interfejsu API Kubernetes nie jest obsługiwany. Udostępnia wiele pojęć specyficznych dla aplikacji na podstawie kontenerów, w tym certyfikatów, poprawek, skalowania i środowisk. Idealne rozwiązanie dla zespołów, które chcą rozpocząć tworzenie mikrousług kontenerów bez konieczności zarządzania podstawową złożonością platformy Kubernetes.

Przykład: wdrażanie aplikacji internetowej platformy Flask lub FastPI w usłudze Azure Container Apps.
Azure Container Instances (ACI) Oferta bezserwerowa, która zapewnia jeden zasobnik izolowanych kontenerów funkcji Hyper-V na żądanie. Rozliczane przy użyciu zamiast aprowizowania zasobów. Pojęcia, takie jak skalowanie, równoważenie obciążenia i certyfikaty, nie są dostarczane z kontenerami ACI. Użytkownicy często wchodzą w interakcje z usługą ACI za pośrednictwem innych usług; na przykład usługa AKS do orkiestracji. Idealne rozwiązanie, jeśli potrzebujesz mniej "opinii" bloku konstrukcyjnego, który nie jest zgodny ze scenariuszami, dla których usługa Azure Container Apps optymalizuje.

Przykład: Tworzenie obrazu kontenera do wdrożenia w usłudze Azure Container Instances. (Samouczek nie jest specyficzny dla języka Python, ale przedstawione pojęcia dotyczą wszystkich języków).
Azure Kubernetes Service (AKS) W pełni zarządzana opcja Kubernetes na platformie Azure. Obsługuje bezpośredni dostęp do interfejsu API Platformy Kubernetes i uruchamia dowolne obciążenie Kubernetes. Pełny klaster znajduje się w twojej subskrypcji z konfiguracjami i operacjami klastra w ramach kontroli i odpowiedzialności. Idealne rozwiązanie dla zespołów poszukujących w pełni zarządzanej wersji platformy Kubernetes na platformie Azure.

Przykład: wdrażanie klastra usługi Azure Kubernetes Service przy użyciu interfejsu wiersza polecenia platformy Azure.
Azure Functions Rozwiązanie oparte na zdarzeniach bezserwerowe funkcje jako usługa (FAAS). Udostępnia wiele cech usługi Azure Container Apps w zakresie skalowania i integracji ze zdarzeniami, ale jest zoptymalizowany pod kątem funkcji efemerycznych wdrożonych jako kod lub kontenery. Idealne rozwiązanie dla zespołów, które chcą wyzwalać wykonywanie funkcji na zdarzeniach; na przykład w celu powiązania z innymi źródłami danych.

Przykład: tworzenie funkcji w systemie Linux przy użyciu kontenera niestandardowego.

Aby uzyskać bardziej szczegółowe porównanie tych usług, zobacz Porównanie aplikacji kontenera z innymi opcjami kontenera platformy Azure.

Środowiska wirtualne i kontenery

W przypadku uruchamiania projektu w języku Python w środowisku deweloperskim użycie środowiska wirtualnego jest typowym sposobem zarządzania zależnościami i zapewnienia powtarzalności konfiguracji projektu. Środowisko wirtualne ma zainstalowany interpreter języka Python, biblioteki i skrypty wymagane przez kod projektu uruchomiony w tym środowisku. Zależności dla projektów języka Python są zarządzane za pośrednictwem pliku requirements.txt .

Napiwek

W przypadku kontenerów środowiska wirtualne nie są potrzebne, chyba że używasz ich do testowania lub innych powodów. Jeśli używasz środowisk wirtualnych, nie kopiuj ich do obrazu platformy Docker. Użyj pliku .dockerignore, aby je wykluczyć.

Kontenery platformy Docker można traktować jako zapewniające podobne możliwości jak środowiska wirtualne, ale z dalszymi korzyściami w zakresie powtarzalności i przenośności. Kontener platformy Docker można uruchamiać wszędzie tam, gdzie można uruchamiać kontenery, niezależnie od systemu operacyjnego.

Kontener platformy Docker zawiera kod projektu w języku Python i wszystko, czego potrzebuje kod do uruchomienia. Aby przejść do tego punktu, musisz skompilować kod projektu w języku Python do obrazu platformy Docker, a następnie utworzyć kontener, możliwe do uruchomienia wystąpienie tego obrazu.

W przypadku konteneryzacji projektów języka Python pliki kluczy to:

Plik projektu opis
requirements.txt Używany podczas kompilowania obrazu platformy Docker w celu uzyskania poprawnych zależności do obrazu.
Plik Dockerfile Służy do określania sposobu kompilowania obrazu platformy Docker w języku Python. Aby uzyskać więcej informacji, zobacz sekcję Instrukcje dotyczące pliku Dockerfile dla języka Python.
.dockerignore Pliki i katalogi w pliku .dockerignore nie są kopiowane do obrazu platformy Docker za pomocą COPY polecenia w pliku Dockerfile. Plik .dockerignore obsługuje wzorce wykluczeń podobne do plików gitignore . Aby uzyskać więcej informacji, zobacz plik .dockerignore.

Wykluczanie plików pomaga w wydajności kompilacji obrazu, ale należy również użyć go, aby uniknąć dodawania poufnych informacji do obrazu, gdzie można go sprawdzić. Na przykład plik .dockerignore powinien zawierać wiersze, aby ignorować .env i .venv (środowiska wirtualne).

Ustawienia kontenera dla platform internetowych

Struktury sieci Web mają domyślne porty, na których nasłuchują żądań internetowych. Podczas pracy z niektórymi rozwiązaniami kontenerów platformy Azure należy określić port, na którym nasłuchuje kontener, który będzie odbierał ruch.

Struktura internetowa Port
Django 8000
Kolby 5000 lub 5002
FastAPI (uvicorn) 8000 lub 80

W poniższej tabeli przedstawiono sposób ustawiania portu dla różnych rozwiązań kontenerów platformy Azure.

Rozwiązanie kontenera platformy Azure Jak ustawić port aplikacji internetowej
Web App for Containers Domyślnie usługa App Service zakłada, że niestandardowy kontener nasłuchuje na porcie 80 lub 8080. Jeśli kontener nasłuchuje innego portu, ustaw ustawienie aplikacji WEBSITES_PORT w aplikacji usługi App Service. Aby uzyskać więcej informacji, zobacz Konfigurowanie niestandardowego kontenera dla usługi aplikacja systemu Azure Service.
Azure Containers Apps Usługa Azure Container Apps umożliwia uwidocznienie aplikacji kontenera w publicznej sieci web, w sieci wirtualnej lub w innych aplikacjach kontenerów w środowisku przez włączenie ruchu przychodzącego. Ustaw ruch przychodzący targetPort na port, na który kontener nasłuchuje żądań przychodzących. Punkt końcowy ruchu przychodzącego aplikacji jest zawsze uwidaczniony na porcie 443. Aby uzyskać więcej informacji, zobacz Konfigurowanie ruchu przychodzącego HTTPS lub TCP w usłudze Azure Container Apps.
Azure Container Instances, Azure Kubernetes Ustaw port podczas tworzenia kontenera. Należy upewnić się, że rozwiązanie ma platformę internetową, serwer aplikacji (na przykład gunicorn, uvicorn) i serwer internetowy (na przykład nginx). Można na przykład utworzyć dwa kontenery, jeden kontener z platformą internetową i serwerem aplikacji oraz drugą platformą z serwerem internetowym. Dwa kontenery komunikują się na jednym porcie, a kontener serwera internetowego uwidacznia 80/443 dla żądań zewnętrznych.

Python Dockerfile

Plik Dockerfile to plik tekstowy zawierający instrukcje dotyczące tworzenia obrazu platformy Docker. Pierwszy wiersz określa obraz podstawowy na początku. Ten wiersz jest zgodny z instrukcjami dotyczącymi instalowania wymaganych programów, kopiowania plików i innych instrukcji tworzenia środowiska roboczego. Na przykład niektóre przykłady specyficzne dla języka Python dla kluczowych instrukcji dotyczących pliku Dockerfile języka Python są wyświetlane w poniższej tabeli.

Instrukcja Purpose Przykład
FROM Ustawia obraz podstawowy na potrzeby kolejnych instrukcji. FROM python:3.8-slim
NARAZIĆ Informuje platformę Docker, że kontener nasłuchuje na określonych portach sieciowych w czasie wykonywania. EXPOSE 5000
KOPII Kopiuje pliki lub katalogi z określonego źródła i dodaje je do systemu plików kontenera w określonej ścieżce docelowej. COPY . /app
URUCHOMIĆ Uruchamia polecenie wewnątrz obrazu platformy Docker. Na przykład ściąganie zależności. Polecenie jest uruchamiane raz w czasie kompilacji. RUN python -m pip install -r requirements.txt
CMD Polecenie udostępnia wartość domyślną do wykonywania kontenera. Może istnieć tylko jedna instrukcja CMD. CMD ["gunicorn", "--bind", "0.0.0.0:5000", "wsgi:app"]

Polecenie kompilacji platformy Docker kompiluje obrazy platformy Docker z pliku Dockerfile i kontekstu. Kontekst kompilacji to zestaw plików znajdujących się w określonej ścieżce lub adresie URL. Zazwyczaj utworzysz obraz z katalogu głównego projektu języka Python, a ścieżka polecenia kompilacji to "." jak pokazano w poniższym przykładzie.

docker build --rm --pull  --file "Dockerfile"  --tag "mywebapp:latest"  .

Proces kompilacji może odwoływać się do dowolnego pliku w kontekście. Na przykład kompilacja może użyć instrukcji COPY, aby odwołać się do pliku w kontekście. Oto przykład pliku Dockerfile dla projektu języka Python przy użyciu platformy Flask :

FROM python:3.8-slim

EXPOSE 5000

# Keeps Python from generating .pyc files in the container.
ENV PYTHONDONTWRITEBYTECODE=1

# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1

# Install pip requirements.
COPY requirements.txt .
RUN python -m pip install -r requirements.txt

WORKDIR /app
COPY . /app

# Creates a non-root user with an explicit UID and adds permission to access the /app folder.
RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
USER appuser

# Provides defaults for an executing container; can be overridden with Docker CLI.
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "wsgi:app"]

Plik Dockerfile można utworzyć ręcznie lub utworzyć go automatycznie za pomocą programu VS Code i rozszerzenia platformy Docker. Aby uzyskać więcej informacji, zobacz Generowanie plików platformy Docker.

Polecenie kompilacji platformy Docker jest częścią interfejsu wiersza polecenia platformy Docker. W przypadku używania środowisk IDE, takich jak VS Code lub PyCharm, polecenia interfejsu użytkownika do pracy z obrazami platformy Docker wywołają polecenie kompilacji i automatyzują określanie opcji.

Praca z obrazami i kontenerami platformy Docker w języku Python

VS Code i PyCharm

Praca w zintegrowanym środowisku projektowym (IDE) na potrzeby tworzenia kontenerów języka Python nie jest konieczna, ale może uprościć wiele zadań związanych z kontenerem. Poniżej przedstawiono niektóre czynności, które można wykonać za pomocą programu VS Code i narzędzia PyCharm.

  • Pobierz i skompiluj obrazy platformy Docker.

    • Tworzenie obrazów w środowisku deweloperskim.
    • Tworzenie obrazów platformy Docker na platformie Azure bez platformy Docker zainstalowanej w środowisku deweloperskim. (W przypadku narzędzia PyCharm użyj interfejsu wiersza polecenia platformy Azure do kompilowania obrazów na platformie Azure).
  • Utwórz i uruchom kontenery platformy Docker na podstawie istniejącego obrazu, ściągniętego obrazu lub bezpośrednio z pliku Dockerfile.

  • Uruchamianie aplikacji wielokontenerowych za pomocą narzędzia Docker Compose.

  • Połączenie i pracować z rejestrami kontenerów, takimi jak Docker Hub, GitLab, JetBrains Space, Docker V2 i inne własne rejestry platformy Docker.

  • (Tylko program VS Code) Dodaj pliki Dockerfile i Docker compose dostosowane do projektu języka Python.

Aby skonfigurować program VS Code i narzędzie PyCharm do uruchamiania kontenerów platformy Docker w środowisku deweloperskim, wykonaj następujące kroki.

Jeśli jeszcze tego nie zrobiono, zainstaluj narzędzia platformy Azure dla programu VS Code.

Instrukcje Zrzut ekranu
Krok 1. Użyj klawisza SHIFT + ALT + A, aby otworzyć rozszerzenie platformy Azure i potwierdzić, że masz połączenie z platformą Azure.

Możesz również wybrać ikonę platformy Azure na pasku rozszerzeń programu VS Code.

Jeśli nie zalogowałeś się, wybierz pozycję Zaloguj się do platformy Azure i postępuj zgodnie z monitami.

Jeśli masz problem z uzyskaniem dostępu do subskrypcji platformy Azure, może to być spowodowane tym, że jesteś za serwerem proxy. Aby rozwiązać problemy z połączeniem, zobacz Network Połączenie ions in Visual Studio Code (Sieci Połączenie ions w programie Visual Studio Code).
Screenshot showing how Azure Tools looks once signed in.Screenshot showing how Azure Tools looks if you aren't signed in.
Krok 2. Użyj klawisza CTRL + SHIFT + X, aby otworzyć rozszerzenia, wyszukać rozszerzenie platformy Docker i zainstalować rozszerzenie.

Możesz również wybrać ikonę Rozszerzenia na pasku rozszerzeń programu VS Code.
Screenshot showing how to add Docker extension to VS Code.
Krok 3. Wybierz ikonę platformy Docker na pasku rozszerzenia, rozwiń węzeł obrazy i kliknij prawym przyciskiem myszy obraz, aby uruchomić go jako kontener. Screenshot showing how to use the Docker extension in VS Code to run a container from a Docker image.
Krok 4. Monitorowanie danych wyjściowych uruchamiania platformy Docker w oknie terminalu. Screenshot showing an example of running a container in VS Code.

Interfejs wiersza polecenia platformy Azure i interfejs wiersza polecenia platformy Docker

Możesz również pracować z obrazami i kontenerami platformy Docker w języku Python przy użyciu interfejsu wiersza polecenia platformy Azure i interfejsu wiersza polecenia platformy Docker. Zarówno program VS Code, jak i PyCharm mają terminale, w których można uruchamiać te interfejsy CLI.

Użyj interfejsu wiersza polecenia, jeśli potrzebujesz bardziej precyzyjnej kontroli nad argumentami kompilacji i uruchamiania oraz automatyzacji. Na przykład następujące polecenie pokazuje, jak za pomocą interfejsu wiersza polecenia platformy Azure az acr build określić nazwę obrazu platformy Docker.

az acr build --registry <registry-name> \
  --resource-group <resource-group> \
  --target pythoncontainerwebapp:latest .

W innym przykładzie rozważ następujące polecenie, które pokazuje, jak używać polecenia uruchamiania interfejsu wiersza polecenia platformy Docker. W przykładzie pokazano, jak uruchomić kontener platformy Docker, który komunikuje się z wystąpieniem bazy danych MongoDB w środowisku deweloperskim poza kontenerem. Różne wartości do ukończenia polecenia są łatwiejsze do zautomatyzowania w przypadku określenia w wierszu polecenia.

docker run --rm -it \
  --publish <port>:<port> --publish 27017:27017 \
  --add-host mongoservice:<your-server-IP-address> \
  --env CONNECTION_STRING=mongodb://mongoservice:27017 \
  --env DB_NAME=<database-name> \
  --env COLLECTION_NAME=<collection-name> \
  containermongo:latest  

Aby uzyskać więcej informacji na temat tego scenariusza, zobacz Kompilowanie i testowanie konteneryzowanej aplikacji internetowej w języku Python lokalnie.

Zmienne środowiskowe w kontenerach

Projekty języka Python często używają zmiennych środowiskowych do przekazywania danych do kodu. Można na przykład określić informacje o połączeniu z bazą danych w zmiennej środowiskowej, aby można je było łatwo zmienić podczas testowania. Lub podczas wdrażania projektu w środowisku produkcyjnym można zmienić połączenie bazy danych, aby odwoływać się do produkcyjnego wystąpienia bazy danych.

Pakiety takie jak python-dotenv są często używane do odczytywania par klucz-wartość z pliku env i ustawiania ich jako zmiennych środowiskowych. Plik env jest przydatny podczas uruchamiania w środowisku wirtualnym, ale nie jest zalecany podczas pracy z kontenerami. Nie należy kopiować pliku env do obrazu platformy Docker, zwłaszcza jeśli zawiera informacje poufne, a kontener zostanie upubliczniony. Użyj pliku .dockerignore, aby wykluczyć pliki kopiowane do obrazu platformy Docker. Aby uzyskać więcej informacji, zobacz sekcję Środowiska wirtualne i kontenery w tym artykule.

Zmienne środowiskowe można przekazać do kontenerów na kilka sposobów:

  1. Zdefiniowane w pliku Dockerfile jako instrukcje ENV .
  2. Przekazano jako --build-arg argumenty za pomocą polecenia kompilacji platformy Docker.
  3. Przekazano jako --secret argumenty za pomocą polecenia kompilacji platformy Docker i zaplecza BuildKit .
  4. Przekazano jako argumenty lub --env--env-file za pomocą polecenia Docker run .

Dwie pierwsze opcje mają tę samą wadę, jak wspomniano powyżej w przypadku plików env , a mianowicie, że trwale umieszczasz potencjalnie poufne informacje w obrazie platformy Docker. Możesz sprawdzić obraz platformy Docker i zobaczyć zmienne środowiskowe, na przykład za pomocą polecenia inspekcja obrazu platformy Docker.

Trzecia opcja zestawu BuildKit umożliwia przekazywanie informacji tajnych do użycia w pliku Dockerfile do tworzenia obrazów platformy Docker w bezpieczny sposób, który nie zostanie zapisany w końcowym obrazie.

Czwarta opcja przekazywania zmiennych środowiskowych za pomocą polecenia docker run oznacza, że obraz platformy Docker nie zawiera zmiennych. Jednak zmienne są nadal widoczne podczas inspekcji wystąpienia kontenera (na przykład za pomocą inspekcji kontenera platformy Docker). Ta opcja może być akceptowalna, gdy dostęp do wystąpienia kontenera jest kontrolowany lub w scenariuszach testowania lub tworzenia.

Oto przykład przekazywania zmiennych środowiskowych przy użyciu polecenia uruchamiania interfejsu wiersza polecenia platformy Docker i używania argumentu --env .

# PORT=8000 for Django and 5000 for Flask
export PORT=<port-number>

docker run --rm -it \
  --publish $PORT:$PORT \
  --env CONNECTION_STRING=<connection-info> \
  --env DB_NAME=<database-name> \
  <dockerimagename:tag>

Jeśli używasz programu VS Code lub PyCharm, opcje interfejsu użytkownika do pracy z obrazami i kontenerami ostatecznie używają poleceń interfejsu wiersza polecenia platformy Docker, takich jak pokazano powyżej.

Na koniec określanie zmiennych środowiskowych podczas wdrażania kontenera na platformie Azure różni się od używania zmiennych środowiskowych w środowisku deweloperskim. Na przykład:

Inną opcją jest użycie usługi Service Połączenie or, aby ułatwić łączenie usług obliczeniowych platformy Azure z innymi usługami zapasowymi. Ta usługa konfiguruje ustawienia sieci i informacje o połączeniu (na przykład generowanie zmiennych środowiskowych) między usługami obliczeniowymi i docelowymi usługami zapasowymi na płaszczyźnie zarządzania.

Wyświetlanie dzienników kontenera

Wyświetl dzienniki wystąpienia kontenera, aby wyświetlić dane wyjściowe komunikatów diagnostycznych z kodu i rozwiązać problemy w kodzie kontenera. Poniżej przedstawiono kilka sposobów wyświetlania dzienników podczas uruchamiania kontenera w środowisku deweloperskim:

  • Uruchamianie kontenera za pomocą programu VS Code lub PyCharm, jak pokazano w sekcji VS Code i PyCharm, można zobaczyć dzienniki w oknach terminalu otwartych po uruchomieniu platformy Docker.

  • Jeśli używasz polecenia uruchamiania interfejsu wiersza polecenia platformy Docker z flagą -itinteraktywną, zobaczysz dane wyjściowe następujące po poleceniu.

  • W programie Docker Desktop można również wyświetlić dzienniki dla uruchomionego kontenera.

Podczas wdrażania kontenera na platformie Azure masz również dostęp do dzienników kontenerów. Poniżej przedstawiono kilka usług platformy Azure i sposób uzyskiwania dostępu do dzienników kontenerów w witrynie Azure Portal.

Usługa platformy Azure Jak uzyskać dostęp do dzienników w witrynie Azure Portal
Web App for Containers Przejdź do zasobu Diagnozowanie i rozwiązywanie problemów , aby wyświetlić dzienniki. Diagnostyka to inteligentne i interaktywne środowisko ułatwiające rozwiązywanie problemów z aplikacją bez konieczności konfigurowania. Aby uzyskać widok dzienników w czasie rzeczywistym, przejdź do strumienia dzienników monitorowania - . Aby uzyskać bardziej szczegółowe zapytania dziennika i konfigurację, zobacz inne zasoby w obszarze Monitorowanie.
Azure Container Apps Przejdź do zasobu środowiska Diagnozowanie i rozwiązywanie problemów w celu rozwiązywania problemów ze środowiskiem. Częściej warto zobaczyć dzienniki kontenerów. W zasobie kontenera w obszarze Zarządzanie poprawkami aplikacji - wybierz poprawkę, a następnie możesz wyświetlić dzienniki systemu i konsoli. Aby uzyskać bardziej szczegółowe zapytania dziennika i konfigurację, zobacz zasoby w obszarze Monitorowanie.
Azure Container Instances Przejdź do zasobu Kontenery i wybierz pozycję Dzienniki.

W przypadku tych samych usług wymienionych powyżej znajdują się polecenia interfejsu wiersza polecenia platformy Azure umożliwiające dostęp do dzienników.

Usługa platformy Azure Polecenie interfejsu wiersza polecenia platformy Azure w celu uzyskania dostępu do dzienników
Web App for Containers az webapp log
Azure Container Apps az containerapps logs
Azure Container Instances az container logs

Istnieje również obsługa wyświetlania dzienników w programie VS Code. Musisz mieć zainstalowane narzędzia platformy Azure dla programu VS Code . Poniżej przedstawiono przykład wyświetlania dzienników usługi Web Apps for Containers (App Service) w programie VS Code.

Screenshot showing how to view logs in VS Code for Web Apps for Containers.

Następne kroki