Ćwiczenie: kompilowanie i uruchamianie obrazu kontenera przy użyciu zadań usługi Azure Container Registry

Ukończone

W tym ćwiczeniu użyjesz usługi ACR Tasks do wykonania następujących akcji:

  • Tworzenie usługi Azure Container Registry (ACR)
  • Kompilowanie i wypychanie obrazu z pliku Dockerfile
  • Weryfikowanie wyników
  • Uruchamianie obrazu w usłudze ACR

Wymagania wstępne

  • Konto platformy Azure z aktywną subskrypcją. Jeśli jej jeszcze nie masz, możesz zarejestrować się w celu uzyskania bezpłatnej wersji próbnej na stronie https://azure.com/free

Zaloguj się na platformie Azure i uruchom usługę Cloud Shell

  1. Zaloguj się do witryny Azure Portal i otwórz usługę Cloud Shell.

    Lokalizacja przycisku uruchamiania usługi Cloud Shell.

  2. Po otwarciu powłoki wybierz środowisko powłoki Bash .

    Wybieranie środowiska powłoki Bash.

Tworzenie rejestru Azure Container Registry

  1. Utwórz grupę zasobów dla rejestru. Zastąp <myLocation> ciąg w poniższym poleceniu lokalizacją znajdującą się w pobliżu.

    az group create --name az204-acr-rg --location <myLocation>
    
  2. Utwórz podstawowy rejestr kontenerów. Nazwa rejestru musi być unikatowa w obrębie platformy Azure i może zawierać od 5 do 50 znaków alfanumerycznych. Zastąp <myContainerRegistry> ciąg w poniższym poleceniu unikatową wartością.

    az acr create --resource-group az204-acr-rg \
        --name <myContainerRegistry> --sku Basic
    

    Uwaga

    Polecenie tworzy rejestr podstawowy , czyli opcję zoptymalizowaną pod kątem kosztów dla deweloperów uczących się usługi Azure Container Registry.

Kompilowanie i wypychanie obrazu z pliku Dockerfile

Teraz użyj usługi Azure Container Registry, aby skompilować i wypchnąć obraz na podstawie lokalnego pliku Dockerfile.

  1. Utwórz lub przejdź do katalogu lokalnego, a następnie użyj następującego polecenia, aby utworzyć plik Dockerfile. Plik Dockerfile zawiera jeden wiersz, który odwołuje się do obrazu hostowanego hello-world w usłudze Microsoft Container Registry.

    echo FROM mcr.microsoft.com/hello-world > Dockerfile
    
  2. az acr build Uruchom polecenie , które skompiluje obraz i po pomyślnym skompilowania obrazu wypchnie go do rejestru. Zastąp <myContainerRegistry> ciąg nazwą użytą wcześniej.

    az acr build --image sample/hello-world:v1  \
        --registry <myContainerRegistry> \
        --file Dockerfile .
    

    Poniżej przedstawiono skróconą próbkę danych wyjściowych z poprzedniego polecenia pokazującego kilka ostatnich wierszy z wynikami końcowymi. Możesz zobaczyć w repository polu, na sample/hello-word którym znajduje się obraz.

    - image:
        registry: <myContainerRegistry>.azurecr.io
        repository: sample/hello-world
        tag: v1
        digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a
      runtime-dependency:
        registry: mcr.microsoft.com
        repository: hello-world
        tag: latest
        digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a
      git: {}
    
    
    Run ID: cf1 was successful after 11s
    

Weryfikowanie wyników

  1. Użyj polecenia , az acr repository list aby wyświetlić listę repozytoriów w rejestrze. Zastąp <myContainerRegistry> ciąg nazwą użytą wcześniej.

    az acr repository list --name <myContainerRegistry> --output table
    

    Wyjście:

    Result
    ----------------
    sample/hello-world
    
  2. Użyj polecenia , az acr repository show-tags aby wyświetlić listę tagów w repozytorium przykładowym/hello-world . Zastąp <myContainerRegistry> ciąg nazwą użytą wcześniej.

    az acr repository show-tags --name <myContainerRegistry> \
        --repository sample/hello-world --output table
    

    Wyjście:

    Result
    --------
    v1
    

Uruchamianie obrazu w usłudze ACR

  1. Uruchom obraz kontenera sample/hello-world:v1 z rejestru kontenerów az acr run przy użyciu polecenia . W poniższym przykładzie użyto $Registry polecenia , aby określić rejestr, w którym jest uruchamiane polecenie. Zastąp <myContainerRegistry> ciąg nazwą użytą wcześniej.

    az acr run --registry <myContainerRegistry> \
        --cmd '$Registry/sample/hello-world:v1' /dev/null
    

    Parametr cmd w tym przykładzie uruchamia kontener w domyślnej konfiguracji, ale cmd obsługuje inne docker run parametry, a nawet inne docker polecenia.

    Następujące przykładowe dane wyjściowe są skrócone:

    Packing source code into tar to upload...
    Uploading archived source code from '/tmp/run_archive_ebf74da7fcb04683867b129e2ccad5e1.tar.gz'...
    Sending context (1.855 KiB) to registry: mycontainerre...
    Queued a run with ID: cab
    Waiting for an agent...
    2019/03/19 19:01:53 Using acb_vol_60e9a538-b466-475f-9565-80c5b93eaa15 as the home volume
    2019/03/19 19:01:53 Creating Docker network: acb_default_network, driver: 'bridge'
    2019/03/19 19:01:53 Successfully set up Docker network: acb_default_network
    2019/03/19 19:01:53 Setting up Docker configuration...
    2019/03/19 19:01:54 Successfully set up Docker configuration
    2019/03/19 19:01:54 Logging in to registry: mycontainerregistry008.azurecr.io
    2019/03/19 19:01:55 Successfully logged into mycontainerregistry008.azurecr.io
    2019/03/19 19:01:55 Executing step ID: acb_step_0. Working directory: '', Network: 'acb_default_network'
    2019/03/19 19:01:55 Launching container with name: acb_step_0
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    
    2019/03/19 19:01:56 Successfully executed container: acb_step_0
    2019/03/19 19:01:56 Step ID: acb_step_0 marked as successful (elapsed time in seconds: 0.843801)
    
    Run ID: cab was successful after 6s
    

Czyszczenie zasobów

Gdy grupa zasobów, rejestr kontenerów i przechowywane w nim obrazy kontenerów nie będą już potrzebne, możesz użyć az group delete polecenia .

az group delete --name az204-acr-rg --no-wait