Rövid útmutató: Tárolórendszerkép létrehozása és futtatása az Azure Container Registry Tasks használatával
Ebben a rövid útmutatóban az Azure Container Registry Tasks parancsaival gyorsan létrehozhat, leküldhet és futtathat egy Docker-tárolórendszerképet natív módon az Azure-ban, helyi Docker-telepítés nélkül. Az ACR Tasks az Azure Container Registry szolgáltatáscsomagja, amely segít a tárolórendszerképek kezelésében és módosításában a tároló teljes életciklusa során. Ez a példa bemutatja, hogyan lehet a "belső hurok" tárolórendszerkép-fejlesztési ciklust kiépíteni a felhőbe igény szerinti buildekkel egy helyi Dockerfile használatával.
A rövid útmutató után az oktatóanyagok segítségével megismerheti az ACR-feladatok speciális funkcióit. Az ACR-feladatok többek között kód véglegesítések vagy alaprendszerkép-frissítések alapján automatizálhatják a rendszerkép-buildeket, vagy több tárolót tesztelhetnek párhuzamosan.
Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.
Előfeltételek
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: A Bash rövid útmutatója az Azure Cloud Shellben.
Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd : Bejelentkezés az Azure CLI-vel.
Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata az Azure CLI-vel.
Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet.
- Ehhez a rövid útmutatóhoz az Azure CLI 2.0.58-es vagy újabb verziója szükséges. Az Azure Cloud Shell használata esetén a legújabb verzió már telepítve van.
Erőforráscsoport létrehozása
Ha még nincs tárolóregisztrációs adatbázisa, először hozzon létre egy erőforráscsoportot az az group create paranccsal. Az Azure-erőforráscsoport olyan logikai tároló, amelybe a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat.
A következő példában létrehozunk egy myResourceGroup nevű erőforráscsoportot az eastus helyen.
az group create --name myResourceGroup --location eastus
Container Registry létrehozása
Hozzon létre egy tárolóregisztrációs adatbázist az az acr create paranccsal. A beállításjegyzék nevének egyedinek kell lennie az Azure rendszerben, és 5–50 alfanumerikus karaktert kell tartalmaznia. Az alábbi példában a mycontainerregistry008 van használatban. Ezt cserélje le egy egyedi értékre.
az acr create --resource-group myResourceGroup \
--name mycontainerregistry008 --sku Basic
Ez a példa létrehoz egy alapszintű beállításjegyzéket, egy költségoptimalizált lehetőséget a fejlesztőknek az Azure Container Registry megismeréséhez. Az elérhető szolgáltatási szintekről további információt a Tárolóregisztrációs adatbázis szolgáltatási szintjei című témakörben talál.
Rendszerkép létrehozása és leküldése Docker-fájlból
Most az Azure Container Registry használatával hozzon létre és küldjön le egy lemezképet. Először hozzon létre egy helyi munkakönyvtárat, majd hozzon létre egy Dockerfile nevű Dockerfile-t egyetlen sortal: FROM mcr.microsoft.com/hello-world
. Ez egy egyszerű példa linuxos tárolórendszerkép létrehozására a hello-world
Microsoft Container Registryben tárolt rendszerképből. Létrehozhat saját szabványos Dockerfile-fájlokat, és képeket készíthet más platformokhoz. Ha bash-rendszerhéjon dolgozik, hozza létre a Dockerfile-t a következő paranccsal:
echo "FROM mcr.microsoft.com/hello-world" > Dockerfile
Futtassa az az acr buildelési parancsot, amely létrehozza a rendszerképet, és a rendszerkép sikeres létrehozása után leküldi azt a beállításjegyzékbe. Az alábbi példa létrehozza és leküldi a sample/hello-world:v1
képet. A .
parancs végén található beállítás a Dockerfile helyét állítja be, ebben az esetben az aktuális könyvtárat.
az acr build --image sample/hello-world:v1 \
--registry mycontainerregistry008 \
--file Dockerfile .
A sikeres buildelés és leküldés kimenete a következőhöz hasonló:
Packing source code into tar to upload...
Uploading archived source code from '/tmp/build_archive_b0bc1e5d361b44f0833xxxx41b78c24e.tar.gz'...
Sending context (1.856 KiB) to registry: mycontainerregistry008...
Queued a build with ID: ca8
Waiting for agent...
2019/03/18 21:56:57 Using acb_vol_4c7ffa31-c862-4be3-xxxx-ab8e615c55c4 as the home volume
2019/03/18 21:56:57 Setting up Docker configuration...
2019/03/18 21:56:58 Successfully set up Docker configuration
2019/03/18 21:56:58 Logging in to registry: mycontainerregistry008.azurecr.io
2019/03/18 21:56:59 Successfully logged into mycontainerregistry008.azurecr.io
2019/03/18 21:56:59 Executing step ID: build. Working directory: '', Network: ''
2019/03/18 21:56:59 Obtaining source code and scanning for dependencies...
2019/03/18 21:57:00 Successfully obtained source code and scanned for dependencies
2019/03/18 21:57:00 Launching container with name: build
Sending build context to Docker daemon 13.82kB
Step 1/1 : FROM mcr.microsoft.com/hello-world
latest: Pulling from hello-world
Digest: sha256:2557e3c07ed1e38f26e389462d03ed943586fxxxx21577a99efb77324b0fe535
Successfully built fce289e99eb9
Successfully tagged mycontainerregistry008.azurecr.io/sample/hello-world:v1
2019/03/18 21:57:01 Successfully executed container: build
2019/03/18 21:57:01 Executing step ID: push. Working directory: '', Network: ''
2019/03/18 21:57:01 Pushing image: mycontainerregistry008.azurecr.io/sample/hello-world:v1, attempt 1
The push refers to repository [mycontainerregistry008.azurecr.io/sample/hello-world]
af0b15c8625b: Preparing
af0b15c8625b: Layer already exists
v1: digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a size: 524
2019/03/18 21:57:03 Successfully pushed image: mycontainerregistry008.azurecr.io/sample/hello-world:v1
2019/03/18 21:57:03 Step ID: build marked as successful (elapsed time in seconds: 2.543040)
2019/03/18 21:57:03 Populating digests for step ID: build...
2019/03/18 21:57:05 Successfully populated digests for step ID: build
2019/03/18 21:57:05 Step ID: push marked as successful (elapsed time in seconds: 1.473581)
2019/03/18 21:57:05 The following dependencies were found:
2019/03/18 21:57:05
- image:
registry: mycontainerregistry008.azurecr.io
repository: sample/hello-world
tag: v1
digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a
runtime-dependency:
registry: registry.hub.docker.com
repository: library/hello-world
tag: v1
digest: sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535
git: {}
Run ID: ca8 was successful after 10s
A rendszerkép futtatása
Most gyorsan futtassa a létrehozott és a beállításjegyzékbe leküldött rendszerképet. Itt az az acr run használatával futtathatja a tárolóparancsot. A tárolófejlesztési munkafolyamatban ez lehet egy érvényesítési lépés a rendszerkép üzembe helyezése előtt, vagy egy többlépéses YAML-fájlba is belefoglalhatja a parancsot.
Az alábbi példa $Registry használ annak a beállításjegyzéknek a végpontjának megadásához, ahol a parancsot futtatja:
az acr run --registry mycontainerregistry008 \
--cmd '$Registry/sample/hello-world:v1' /dev/null
A cmd
példában szereplő paraméter az alapértelmezett konfigurációban futtatja a tárolót, de cmd
további docker run
paramétereket vagy akár más docker
parancsokat is támogat.
A kimenet a következőkhöz hasonló:
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.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
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
Az erőforrások eltávolítása
Ha már nincs rá szükség, az az group delete paranccsal eltávolíthatja az erőforráscsoportot, a tárolóregisztrációs adatbázist és az ott tárolt tárolólemezképeket.
az group delete --name myResourceGroup
Következő lépések
Ebben a rövid útmutatóban az ACR Tasks funkcióit használta egy Docker-tároló lemezképének natív létrehozására, leküldésére és futtatására az Azure-ban helyi Docker-telepítés nélkül. Folytassa az Azure Container Registry Tasks oktatóanyagával, amelyből megtudhatja, hogyan automatizálhatja a rendszerképek összeállítását és frissítéseit az ACR Tasks használatával.