.

Hva er Docker? Docker er en del av Containers teknologien som blomster opp i utviklings miljøer rundt om i verden. Containers gir en vis fordel i både devops- og utvikling kontekst.

Containere kan sees på som ett alternativ til virtuelle maskiner men kjører kode direkte på hardware og operativsystemet er isolert i ”userspace”. Containere lar deg enkelt definere alt du trenger for å kjøre applikasjoner eller tjenester ved å bruke image (ferdige oppskrifter) til å lage kopier, skalere eller dele med andre innenfor ditt felt.

Nå skal jeg ikke bruke dette innlegge til å gå gjennom hvordan og hvorfor en skal bruke Docker. Mer informasjon om dette her: https://docs.docker.com/

Jeg skal bare legge til noen fordeler med containere:

  • Raskt oppsett av utviklingsmiljø
  • Identiske utvikling- og produksjonsmiljø
  • Isolasjon av kode
  • Enkel deployment
  • Enkel skalering på cloud/cluster ( Azure, AWS og nå også Gooogle )

 

Ok. Da er det avklart og Dere er nå overbevist om hvorfor Docker/Containers skal brukes.

La oss starte med en enkel Azure Docker VM. Microsoft har den siste tiden vist et stort engasjement for alternative løsninger som Docker. På deres egen GitHub repo finnes det mange ferdige maler som kan brukes direkte i Azure. Du finner den vi skal bruke her.

 

Vi starter med å lage en enkel Ubuntu VM ved å bruke Azure CLI:

 

azure config mode arm

azure group create --name DockerVM --location "West Europe" \

> --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/docker-simple-on-ubuntu/azuredeploy.json

 

Vi svarer på noen enkle spørsmål :

info:    Executing command group create

+ Getting resource group DockerVM                                              

+ Creating resource group DockerVM                                             

info:    Created resource group DockerVM

info:    Supply values for the following parameters

newStorageAccountName:  dockervmdisk

adminUsername:  olaf

adminPassword:  P@ssword!!

dnsNameForPublicIP:  dockervmip

+ Initializing template configurations and parameters                          

+ Creating a deployment                                                        

info:    Created template deployment "azuredeploy"

data:    Id:                  /subscriptions/42ed9e42-181b-4f9d-8f6d-9258ca286060/resourceGroups/DockerVM

data:    Name:                DockerVM

data:    Location:            westeurope

data:    Provisioning State:  Succeeded

data:    Tags: null

data:    

info:    group create command OK

La oss se om VM er laget ferdig ved å kjøre:

 

azure vm show -g DockerVM -n MyDockerVM

 

Resultatet vil være noe lignende til dette:

 

info:    Executing command vm show

+ Looking up the VM "MyDockerVM"                                               

+ Looking up the NIC "myVMNicD"                                                

+ Looking up the public ip "myPublicIPD"                                       

data:    Id                              :/subscriptions/42ed9e42-181b-4f9d-8f6d-9258ca286060/resourceGroups/DockerVM/providers/Microsoft.Compute/virtualMachines/MyDockerVM

data:    ProvisioningState               :Updating

data:    Name                            :MyDockerVM

data:    Location                        :westeurope

data:    Type                            :Microsoft.Compute/virtualMachines

data:    

data:    Hardware Profile:

data:      Size                          :Standard_F1

data:    

data:    Storage Profile:

data:      Image reference:

data:        Publisher                   :Canonical

data:        Offer                       :UbuntuServer

data:        Sku                         :14.04.4-LTS

data:        Version                     :latest

data:    

data:      OS Disk:

data:        OSType                      :Linux

data:        Name                        :osdisk1

data:        Caching                     :ReadWrite

data:        CreateOption                :FromImage

data:        Vhd:

data:          Uri                       :http://xxxxxxxxx.blob.core.windows.net/vhds/osdiskfordockersimple.vhd

data:    

data:    OS Profile:

data:      Computer Name                 :MyDockerVM

data:      User Name                     :olaf

data:      Secrets                       :[]

data:      Linux Configuration:

data:        Disable Password Auth       :false

data:    

data:    Network Profile:

data:      Network Interfaces:

data:        Network Interface #1:

data:          Primary                   :true

data:          MAC Address               :00-0D-3A-28-08-CF

data:          Provisioning State        :Succeeded

data:          Name                      :myVMNicD

data:          Location                  :westeurope

data:            Public IP address       :xx.xx.xxx.xx

data:            FQDN                    :xxxxxxxxxx.westeurope.cloudapp.azure.com

data:    

data:    Diagnostics Instance View:

info:    vm show command OK

 

 

Nå er det bare å logge seg på din” første” Docker VM.

 

ssh xxxx@xxxxxxxxxxx.westeurope.cloudapp.azure.com

 

Når du er logget på la oss lage en container:

 

sudo docker run -d -p 80:80 nginx

 

Dette vil få docker til å laste ned siste versjonen av nginx “image” og kjøre den lokalt på vår server.  Parameter  –p 80:80 betyr at vi eksponerer port 80 fra nginx til vår lokale server på port 80.

 

xxxx@MyDockerVM:~$ docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES

00fc92f95589        nginx               "nginx -g 'daemon ..."   2 minutes ago       Up 2 minutes        0.0.0.0:80->80/tcp, 443/tcp   zealous_austin

 

Her ser vi den kjørende containeren.

Da har du det første eksemplet på docker i Azure. Neste gang skal vi sette opp Docker/Containers i Windows Server 2016 i Azure.

 

Til neste gang.

Legg igjen en kommentar