Wdrażanie obrazu platformy Docker w wystąpieniu kontenera platformy Azure
Azure Container Instance to usługa, która ładuje i uruchamia obrazy platformy Docker na żądanie. Usługa Azure Container Instance może pobrać obraz z rejestru, takiego jak Docker Hub lub Azure Container Registry.
Twoja organizacja chce uruchamiać aplikacje internetowe na platformie Azure. Z tego powodu warto przechowywać obrazy w usłudze Azure Container Registry i uruchamiać je przy użyciu usługi Azure Container Instance.
W tej lekcji dowiesz się, jak przekazać obraz platformy Docker do usługi Azure Container Registry. Następnie uruchomisz obraz przy użyciu usługi Azure Container Instance.
Przechowywanie kontenera przy użyciu usługi Azure Container Registry
Azure Container Registry to usługa hostingu rejestru zapewniana przez platformę Azure. Poszczególne utworzone zasoby usługi Azure Container Registry stanowią oddzielne rejestry o unikatowych adresach URL. Te rejestry są prywatne, co oznacza, że wymagają uwierzytelniania do wypychania lub ściągania obrazów. Usługa Azure Container Registry działa w chmurze i zapewnia podobne poziomy skalowalności i dostępności do innych usług platformy Azure.
Rejestr można utworzyć przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure. Możesz użyć usługi Cloud Shell w witrynie Azure Portal lub lokalnej instalacji interfejsu wiersza polecenia platformy Azure. Pamiętaj, że przed utworzeniem rejestru należy utworzyć grupę zasobów. Podczas tworzenia grupy zasobów zalecamy wybranie najbliższego regionu. W tym przykładzie nazwa grupy zasobów to mygroup
, a lokalizacja to Zachodnie stany USA.
Nie trzeba uruchamiać żadnego z poniższych poleceń. Zrobimy to w następnym ćwiczeniu.
Uwaga
Potrzebujesz unikatowej nazwy kontenera. Możesz sprawdzić, czy nazwa jest już używana tutaj.
az group create --name mygroup --location westus
az acr create --name <unique name> --resource-group mygroup --sku standard --admin-enabled true
Poszczególne jednostki SKU zapewniają różne poziomy skalowalności i magazynu.
Repozytoria usługi Azure Container Registry są prywatne, co oznacza, że nie obsługują nieuwierzytelnionego dostępu. Do ściągania obrazów z repozytorium usługi Azure Container Registry należy użyć polecenia docker login
, podając adres URL serwera logowania dla rejestru. Adres URL serwera logowania dla rejestru w usłudze Azure Container Registry ma postać <nazwa_rejestru>.azurecr.io.
docker login myregistry.azurecr.io
Logowanie do platformy Docker wyświetli monit o podanie nazwy użytkownika i hasła. Aby znaleźć te informacje, przejdź do witryny Azure Portal i wyszukaj klucze dostępu dla rejestru lub uruchom następujące polecenie.
az acr credential show --name myregistry --resource-group mygroup
Obraz można wypchnąć z komputera lokalnego do rejestru platformy Docker przy użyciu docker push
polecenia . Przed wypchnięciem obrazu należy utworzyć alias obrazu, który określa repozytorium i tag tworzony przez rejestr platformy Docker. Nazwa repozytorium musi mieć postać *<login_server>/<image_name>:<tag/.> Do wykonania tej operacji użyj polecenia docker tag
. Poniższy przykład tworzy alias dla obrazu systemu rezerwacji .
docker tag reservationsystem myregistry.azurecr.io/reservationsystem:v2
Jeśli uruchomisz docker image ls
polecenie , zobaczysz dwa wpisy dla obrazu: jeden z oryginalną nazwą, a drugi z nowym aliasem.
Po uruchomieniu polecenia tagu można przekazać obraz do rejestru w usłudze Azure Container Registry przy użyciu następującego polecenia.
docker push myregistry.azurecr.io/reservationsystem:v2
Sprawdź, czy obraz został poprawnie przekazany, wyświetlając listę repozytoriów w rejestrze za pomocą następującego polecenia.
az acr repository list --name myregistry --resource-group mygroup
Możesz również wyświetlić listę obrazów w rejestrze za acr repository show
pomocą polecenia .
az acr repository show --repository reservationsystem --name myregistry --resource-group mygroup
Uwaga
Będziesz mieć co najmniej dwa tagi dla każdego obrazu w repozytorium. Jeden tag będzie wartością określoną w poleceniu acr build (wersja 1 w poprzednim przykładzie). Drugi tag ma wartość latest. Przy każdej ponownej kompilacji obrazu usługa Azure Container Registry automatycznie tworzy tag latest jako alias dla najnowszej wersji obrazu.
Uruchamianie obrazu za pomocą usługi Azure Container Instance
Usługa wystąpienia kontenera platformy Azure może załadować obraz z usługi Azure Container Registry i uruchomić go na platformie Azure.
Utworzysz wystąpienie kontenera i uruchomisz obraz przy użyciu az container create
polecenia . Podaj nazwę użytkownika i hasło dla rejestru za pomocą parametrów registry-username
i registry-password
. Do wystąpienia zostanie przydzielony adres IP. Umożliwia on uzyskanie dostępu do tego wystąpienia. Opcjonalnie możesz określić nazwę DNS, aby odwoływać się do wystąpienia za pomocą etykiety przyjaznej dla użytkownika. Zwróć uwagę, że obraz jest określany jako adres URL, który odwołuje się do rejestru (myregistry) w usłudze Azure Container Registry (azurecr.io). Jeśli używasz usługi Docker Hub lub innego rejestru, zastąp ten adres URL adresem URL obrazu w tym rejestrze.
az container create --resource-group mygroup --name myinstance --image myregistry.azurecr.io/myapp:latest --dns-name-label mydnsname --registry-username <username> --registry-password <password>
Platforma Azure hostuje wystąpienie z nazwą domeny na podstawie określonej etykiety DNS. W pełni kwalifikowaną nazwę domeny wystąpienia można znaleźć, wykonując zapytanie dotyczące adresu IP wystąpienia.
az container show --resource-group mygroup --name myinstance --query ipAddress.fqdn
Dostęp do aplikacji możesz uzyskać przy użyciu przeglądarki internetowej. Możesz przejść do adresu URL zwracane przez to polecenie; Dowiesz się, jak to zrobić w następnej lekcji.