Samouczek: tworzenie obrazu kontenera na potrzeby wdrażania w usłudze Azure Container Instances
Usługa Azure Container Instances umożliwia wdrażanie kontenerów Docker w infrastrukturze platformy Azure bez aprowizowania maszyn wirtualnych ani adaptowania usług wyższego poziomu. Podczas pracy z tym samouczkiem spakujesz małą aplikację internetową środowiska Node.js do obrazu kontenera, który można uruchomić za pomocą usługi Azure Container Instances.
W tym artykule, który jest pierwszą częścią trzyczęściowej serii, wykonasz następujące działania:
- Klonowanie kodu źródłowego aplikacji z usługi GitHub
- Tworzenie obrazu kontenera ze źródła aplikacji
- Testowanie obrazu w lokalnym środowisku Docker
Podczas pracy z częścią drugą i trzecią samouczka przekażesz obraz do usługi Azure Container Registry, a następnie wdrożysz go w usłudze Azure Container Instances.
Zanim rozpoczniesz
Aby ukończyć ten samouczek, musisz spełniać następujące wymagania:
Interfejs wiersza polecenia platformy Azure: musisz mieć interfejs wiersza polecenia platformy Azure w wersji 2.0.29 lub nowszej zainstalowany na komputerze lokalnym. Aby dowiedzieć się, jaka wersja jest używana, uruchom polecenie az --version
. Jeśli konieczna będzie instalacja lub uaktualnienie interfejsu, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
Docker: ten samouczek zakłada, że masz podstawową wiedzę na temat najważniejszych pojęć usługi Docker, takich jak kontenery, obrazy kontenera i podstawowe polecenia docker
. Aby uzyskać podstawowe informacje na temat platformy Docker i kontenerów, zapoznaj się z artykułem Docker overview (Przegląd platformy Docker).
Docker: aby ukończyć ten samouczek, musisz zainstalować platformę Docker lokalnie. Platforma Docker udostępnia pakiety, które konfigurują środowisko platformy Docker w systemach macOS, Windows i Linux.
Ważne
Ponieważ usługa Azure Cloud Shell nie zawiera demona platformy Docker, w celu ukończenia tego samouczka musisz zainstalować na swoim komputerze lokalnym wiersz polecenia platformy Azure i aparat platformy Docker. W tym samouczku nie możesz korzystać z usługi Azure Cloud Shell.
Pobieranie kodu aplikacji
Przykład aplikacji podany w tym samouczku obejmuje prostą aplikację internetową utworzoną za pomocą oprogramowania Node.js. Aplikacja służy za statyczną stronę HTML i wygląda podobnie do poniższego zrzutu ekranu:
Użyj narzędzia Git, aby sklonować repozytorium przykładowej aplikacji:
git clone https://github.com/Azure-Samples/aci-helloworld.git
Możesz też pobrać archiwum ZIP bezpośrednio z usługi GitHub.
Kompilowanie obrazu kontenera
Plik Dockerfile w przykładowej aplikacji przedstawia sposób tworzenia kontenera. Praca rozpoczyna się od oficjalnego obrazu oprogramowania Node.js opartego na systemie Alpine Linux, małej dystrybucji, która dobrze nadaje się do korzystania z kontenerów. Kolejny krok to skopiowanie plików aplikacji do kontenera, zainstalowanie zależności za pomocą programu Node Package Manager i na koniec uruchomienie aplikacji.
FROM node:8.9.3-alpine
RUN mkdir -p /usr/src/app
COPY ./app/* /usr/src/app/
WORKDIR /usr/src/app
RUN npm install
CMD node /usr/src/app/index.js
Użyj polecenia docker build, aby utworzyć obraz kontenera, a następnie otaguj go jako aci-tutorial-app:
docker build ./aci-helloworld -t aci-tutorial-app
Dane wyjściowe polecenia docker build są podobne do następujących (tutaj obcięto je dla zwiększenia czytelności):
docker build ./aci-helloworld -t aci-tutorial-app
Sending build context to Docker daemon 119.3kB
Step 1/6 : FROM node:8.9.3-alpine
8.9.3-alpine: Pulling from library/node
88286f41530e: Pull complete
84f3a4bf8410: Pull complete
d0d9b2214720: Pull complete
Digest: sha256:c73277ccc763752b42bb2400d1aaecb4e3d32e3a9dbedd0e49885c71bea07354
Status: Downloaded newer image for node:8.9.3-alpine
---> 90f5ee24bee2
...
Step 6/6 : CMD node /usr/src/app/index.js
---> Running in f4a1ea099eec
---> 6edad76d09e9
Removing intermediate container f4a1ea099eec
Successfully built 6edad76d09e9
Successfully tagged aci-tutorial-app:latest
Użyj polecenia docker images, aby wyświetlić utworzony obraz:
docker images
Nowo utworzony obraz powinien zostać wyświetlony na liście:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aci-tutorial-app latest 5c745774dfa9 39 seconds ago 68.1 MB
Uruchamianie kontenera w środowisku lokalnym
Przed wdrożeniem kontenera w usłudze Azure Container Instances użyj polecenia docker run, aby uruchomić go lokalnie i sprawdzić, czy działa. Przełącznik -d
umożliwia uruchamianie kontenera w tle, a element -p
— mapowanie dowolnego portu komputera do portu 80 w kontenerze.
docker run -d -p 8080:80 aci-tutorial-app
Dane wyjściowe z polecenia docker run
wyświetlają identyfikator uruchomionego kontenera, jeśli polecenie zakończyło się pomyślnie:
docker run -d -p 8080:80 aci-tutorial-app
```output
a2e3e4435db58ab0c664ce521854c2e1a1bda88c9cf2fcff46aedf48df86cccf
Teraz przejdź do adresu http://localhost:8080
w przeglądarce, aby potwierdzić, że kontener działa. Powinna zostać wyświetlona strona internetowa podobna do poniższego zrzutu ekranu:
Następne kroki
Podczas pracy z samouczkiem utworzono obraz kontenera, który można wdrożyć w usłudze Azure Container Instances i zweryfikować jego działanie lokalnie. Do tej pory wykonano następujące kroki:
- Klonowanie źródła aplikacji z usługi GitHub
- Tworzenie obrazu kontenera ze źródła aplikacji
- Testowanie kontenera w środowisku lokalnym
Przejdź do kolejnego samouczka w serii, aby dowiedzieć się więcej o przechowywaniu obrazów kontenera w usłudze Azure Container Registry: