Docker-gazdagép létrehozása a PowerShell-lel
Ez a szkript létrehoz egy virtuális gépet, amelyen engedélyezve van a Docker, és elindít egy NGINX-et futtató tárolót. A szkript futtatása után az Azure-beli virtuális gép teljes tartománynevén keresztül érheti el az NGINX-webkiszolgálót.
Ha szükséges, telepítse az Azure PowerShell-modult az Azure PowerShell útmutatójának utasításait követve, majd futtassa a Connect-AzAccount
parancsot az Azure-hoz való csatlakozáshoz. Emellett szüksége lesz egy id_rsa.pub
nevű nyilvános SSH-kulcsra a felhasználói profilja .ssh könyvtárában.
Ha nem rendelkezik Azure-előfizetéssel, először hozzon létre egy ingyenes fiókot.
Példaszkript
# Variables for common values
$resourceGroup = "myResourceGroup"
$location = "westeurope"
$vmName = "myVM"
# Definer user name and blank password
$securePassword = ConvertTo-SecureString ' ' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ("azureuser", $securePassword)
# Create a resource group
New-AzResourceGroup -Name $resourceGroup -Location $location
# Create a subnet configuration
$subnetConfig = New-AzVirtualNetworkSubnetConfig -Name mySubnet -AddressPrefix 192.168.1.0/24
# Create a virtual network
$vnet = New-AzVirtualNetwork -ResourceGroupName $resourceGroup -Location $location `
-Name MYvNET -AddressPrefix 192.168.0.0/16 -Subnet $subnetConfig
# Create a public IP address and specify a DNS name
$pip = New-AzPublicIpAddress -ResourceGroupName $resourceGroup -Location $location `
-Name "mypublicdns$(Get-Random)" -AllocationMethod Static -IdleTimeoutInMinutes 4
# Create an inbound network security group rule for port 22
$nsgRuleSSH = New-AzNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleSSH -Protocol Tcp `
-Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
-DestinationPortRange 22 -Access Allow
# Create an inbound network security group rule for port 80
$nsgRuleHTTP = New-AzNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleHTTP -Protocol Tcp `
-Direction Inbound -Priority 2000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
-DestinationPortRange 80 -Access Allow
# Create a network security group
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $resourceGroup -Location $location `
-Name myNetworkSecurityGroup -SecurityRules $nsgRuleSSH,$nsgRuleHTTP
# Create a virtual network card and associate with public IP address and NSG
$nic = New-AzNetworkInterface -Name myNic -ResourceGroupName $resourceGroup -Location $location `
-SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
# Create a virtual machine configuration
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize Standard_D1 | `
Set-AzVMOperatingSystem -Linux -ComputerName $vmName -Credential $cred -DisablePasswordAuthentication | `
Set-AzVMSourceImage -PublisherName Canonical -Offer UbuntuServer -Skus 14.04.2-LTS -Version latest | `
Add-AzVMNetworkInterface -Id $nic.Id
# Configure SSH Keys
$sshPublicKey = Get-Content "$env:USERPROFILE\.ssh\id_rsa.pub"
Add-AzVMSshPublicKey -VM $vmConfig -KeyData $sshPublicKey -Path "/home/azureuser/.ssh/authorized_keys"
# Create a virtual machine
New-AzVM -ResourceGroupName $resourceGroup -Location $location -VM $vmConfig
# Install Docker and run container
$PublicSettings = '{"docker": {"port": "2375"},"compose": {"web": {"image": "nginx","ports": ["80:80"]}}}'
Set-AzVMExtension -Name "Docker" -ResourceGroupName $resourceGroup -VMName $vmName `
-Publisher "Microsoft.Azure.Extensions" -ExtensionType "DockerExtension" -TypeHandlerVersion 1.0 `
-SettingString $PublicSettings -Location $location
Az üzemelő példány eltávolítása
Az alábbi paranccsal eltávolítható az erőforráscsoport, a virtuális gép és az összes kapcsolódó erőforrás.
Remove-AzResourceGroup -Name myResourceGroup
Szkript ismertetése
A szkript a következő parancsokat használja az üzemelő példány létrehozásához. A táblázatban lévő összes elem a hozzá tartozó dokumentációra hivatkozik.
Parancs | Jegyzetek |
---|---|
New-AzResourceGroup | Létrehoz egy erőforráscsoportot, amely az összes erőforrást tárolja. |
New-AzVirtualNetworkSubnetConfig | Alhálózati konfigurációt hoz létre. Ez a konfiguráció a virtuális hálózat létrehozására szolgál. |
New-AzVirtualNetwork | Virtuális hálózatot hoz létre. |
New-AzPublicIpAddress | Egy nyilvános IP-címet hoz létre. |
New-AzNetworkSecurityRuleConfig | Egy hálózati biztonsági csoport (NSG) szabálykonfigurációját hozza létre. Ez a konfiguráció az NSG-re vonatkozó szabály létrehozására szolgál az NSG létrehozásakor. |
New-AzNetworkSecurityGroup | Létrehoz egy hálózati biztonsági csoportot. |
Get-AzVirtualNetworkSubnetConfig | Lekéri az alhálózattal kapcsolatos információkat. Ezeket az adatokat a rendszer hálózati adapter létrehozásakor használja. |
New-AzNetworkInterface | Hálózati adaptert hoz létre. |
New-AzVMConfig | Egy virtuálisgép-konfigurációt hoz létre. Ebben a konfigurációban olyan információk szerepelnek, mint a virtuális gép neve, az operációs rendszer és a rendszergazdai hitelesítő adatok. A rendszer a virtuális gépek létrehozása során használja ezt a konfigurációt. |
New-AzVM | Virtuális gépet hoz létre. |
Set-AzVMExtension | Egy virtuálisgép-bővítményt ad hozzá a virtuális géphez. Ebben a példában a Docker-bővítménnyel konfigurálja a Dockert és futtatja az NGINX Docker-tárolót. |
Remove-AzResourceGroup | Eltávolít egy erőforráscsoportot és az összes abban található erőforrást. |
Következő lépések
Az Azure PowerShell modullal kapcsolatos további információért lásd az Azure PowerShell dokumentációját.
A virtuális gépekhez kapcsolódó további PowerShell-példaszkripteket az Azure Linux rendszerű virtuális gépekre vonatkozó dokumentációjában találhat.