Ćwiczenie: kompilowanie i uruchamianie obrazu kontenera przy użyciu zadań usługi Azure Container Registry
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
Zaloguj się do witryny Azure Portal i otwórz usługę Cloud Shell.
Po otwarciu powłoki wybierz środowisko powłoki Bash .
Tworzenie rejestru Azure Container Registry
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>
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.
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
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, nasample/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
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
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
Uruchom obraz kontenera
sample/hello-world:v1
z rejestru kontenerówaz 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, alecmd
obsługuje innedocker run
parametry, a nawet innedocker
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