Snabbstart: Distribuera en containerinstans i Azure med Hjälp av Docker CLI
Använd Azure Container Instances till att snabbt och enkelt köra serverlösa Docker-containrar i Azure. Distribuera till en containerinstans på begäran när du utvecklar molnbaserade appar och du vill växla sömlöst från lokal utveckling till molndistribution.
I den här snabbstarten använder du interna Docker CLI-kommandon för att distribuera en Docker-container och göra programmet tillgängligt i Azure Container Instances. Integreringen mellan Docker och Azure möjliggör den här funktionen. Några sekunder efter att du har kört ett docker run
kommando kan du bläddra till programmet som körs i containern:
Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
För den här snabbstarten behöver du Docker Desktop version 2.3.0.5 eller senare, tillgänglig för Windows eller macOS. Eller installera Docker ACI Integration CLI för Linux.
Viktigt!
Alla funktioner i Azure Container Instances stöds inte. Ge feedback om Docker-Azure-integreringen genom att skapa ett problem på GitHub-lagringsplatsen aci-integration-beta .
Skapa Azure-kontext
Om du vill använda Docker-kommandon för att köra containrar i Azure Container Instances loggar du först in på Azure:
docker login azure --tenant-id "[tenant ID]"
Om du vill hitta ditt klientorganisations-ID bläddrar du till egenskaperna för Microsoft Entra-ID.
När du uppmanas till det anger eller väljer du dina Azure-autentiseringsuppgifter.
Skapa en ACI-kontext genom att köra docker context create aci
. Den här kontexten associerar Docker med en Azure-prenumeration och resursgrupp så att du kan skapa och hantera containerinstanser. Om du till exempel vill skapa en kontext med namnet myacicontext:
docker context create aci myacicontext
När du uppmanas till det väljer du ditt Azure-prenumerations-ID och väljer sedan en befintlig resursgrupp eller skapar en ny resursgrupp. Om du väljer en ny resursgrupp har den ett systemgenererat namn när du skapar den. Azure-containerinstanser (liksom alla Azure-resurser) måste distribueras till en resursgrupp. Resursgrupper gör det enkelt att se och hantera relaterade Azure-resurser.
Kör docker context ls
för att bekräfta att du har lagt till ACI-kontexten i Dina Docker-kontexter:
docker context ls
Skapa en container
När du har skapat en Docker-kontext kan du skapa en container i Azure. I den här snabbstarten använder du den offentliga mcr.microsoft.com/azuredocs/aci-helloworld
avbildningen. Den här avbildningen paketerar en liten webbapp som skrivits i Node.js och som hanterar en statisk HTML-sida.
Börja med att ändra till ACI-kontexten. Alla efterföljande Docker-kommandon körs i den här kontexten.
docker context use myacicontext
Kör följande docker run
kommando för att skapa Azure-containerinstansen med port 80 exponerad för Internet:
docker run -p 80:80 mcr.microsoft.com/azuredocs/aci-helloworld
Exempelutdata för en lyckad distribution:
[+] Running 2/2
⠿ hungry-kirch Created 5.1s
⠿ single--container--aci Done 11.3s
hungry-kirch
Kör docker ps
för att få information om containern som körs, inklusive den offentliga IP-adressen:
docker ps
Exempelutdata visar en offentlig IP-adress, i det här fallet 52.230.225.232:
CONTAINER ID IMAGE COMMAND STATUS PORTS
hungry-kirch mcr.microsoft.com/azuredocs/aci-helloworld Running 52.230.225.232:80->80/tcp
Gå nu till IP-adressen i webbläsaren. Om du ser en webbsida som liknar följande – grattis! Du har distribuerat ett program som körs i en Docker-container till Azure.
Hämta containerloggarna
Om du behöver felsöka en container eller det program som körs av containern (eller bara se dess utdata), börjar du med att granska loggarna för containerinstansen.
Kör till exempel docker logs
kommandot för att se loggarna för containern hungry-kirch i ACI-kontexten:
docker logs hungry-kirch
Utdata visar loggarna för containern och bör även visa de HTTP GET-förfrågningar som genererades när du granskade programmet i webbläsaren.
listening on port 80
::ffff:10.240.255.55 - - [07/Jul/2020:17:43:53 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [07/Jul/2020:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [07/Jul/2020:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
Rensa resurser
När du är klar med containern kör du docker rm
för att ta bort den. Det här kommandot stoppar och tar bort Azure-containerinstansen.
docker rm hungry-kirch
Nästa steg
I den här snabbstarten skapade du en Azure-containerinstans från en offentlig avbildning med hjälp av integrering mellan Docker och Azure. Läs mer om integreringsscenarier i Docker-dokumentationen.
Du kan också använda Docker-tillägget för Visual Studio Code för en integrerad upplevelse för att utveckla, köra och hantera containrar, avbildningar och kontexter.
Om du vill använda Azure-verktyg för att skapa och hantera containerinstanser kan du läsa andra snabbstarter med hjälp av mallen Azure CLI, Azure PowerShell, Azure Portal och Azure Resource Manager.
Om du vill använda Docker Compose för att definiera och köra ett program med flera containrar lokalt och sedan växla till Azure Container Instances fortsätter du till självstudien.