Docker Tutorial - Introduktion till Docker & Containerization



I denna Docker-handledning kommer du att förstå nödvändigheten bakom Docker och få en introduktion till Docker. Det är den första bloggen i Docker-handledningsserien

Jag hoppas att du inte har missat serien av tidigare DevOps självstudiebloggar. Gå igenom här.Den okontainabla trenden med Docker-container växer och organisationer letar efter yrkesverksamma som har .Den här gången tar vi dig igenom en introduktion till Docker.

Docker-handledning

Denna Docker Tutorial-blogg ger dig den konceptuella och praktiska exponeringen för Docker - En new age containeriseringsteknik.





I den här bloggen kommer vi att fokusera på följande ämnen:

  • Vad är virtualisering?
  • Vad är behållare
  • Fördelar med behållare jämfört med virtualisering
  • Introduktion till Docker
  • Fördelar med Docker
  • Virtualisering vs behållare
  • Dockerinstallation
  • Dockerfil, Docker Image & Docker Container
  • Vad är Docker Hub?
  • Docker-arkitektur
  • Docker Compose

Docker blir populärare och dess användning sprider sig som en löpeld. Anledningen till Dockers växande popularitet är i vilken utsträckning den kan användas i en IT-organisation. Mycket få verktyg där ute har funktionaliteten för att vara användbara för både utvecklare och systemadministratörer. Docker är ett sådant verktyg som verkligen lever upp till sitt löfte om Bygga , Fartyg och Springa .



Med enkla ord är Docker en mjukvarucontainerplattform, vilket innebär att du kan bygga din applikation, paketera dem tillsammans med deras beroenden i en container och sedan kan dessa containrar enkelt skickas för att köras på andra maskiner.

Till exempel: Låt oss överväga en Linux-baserad applikation som har skrivits både i Ruby och Python. Denna applikation kräver en specifik version av Linux, Ruby och Python. För att undvika eventuella versionskonflikter i slutet av användaren kan en linux docker container skapas med de versioner som krävs av Ruby och Python installerade tillsammans med applikationen. Nu kan slutanvändarna använda programmet enkelt genom att köra den här behållaren utan att oroa sig för beroenden eller någon versionskonflikt.

Dessa containrar använder Containerization som kan betraktas som en utvecklad version av Virtualization. Samma uppgift kan också uppnås med virtuella maskiner, men det är inte särskilt effektivt.



Jag får generellt en fråga vid denna tidpunkt, dvs vad är skillnaden mellan virtualisering och behållare? Dessa två termer liknar varandra. Så, låt mig först berätta vad är virtualisering?

Vad är virtualisering?

Virtualisering är tekniken att importera ett gästoperativsystem ovanpå ett värdoperativsystem. Denna teknik var en uppenbarelse i början eftersom den tillät utvecklare att köra flera operativsystem i olika virtuella maskiner som alla körs på samma värd. Detta eliminerade behovet av extra hårdvaruresurs. Fördelarna med virtuella maskiner eller virtualisering är:

  • Flera operativsystem kan köras på samma maskin
  • Underhåll och återvinning var enkelt vid felförhållanden
  • De totala ägandekostnaderna var också lägre på grund av det minskade behovet av infrastruktur

Virtuell maskinarkitektur - Dockerhandledning om introduktion till Docker - Edureka

I diagrammet till höger kan du se att det finns ett värdoperativsystem där det körs 3 gästoperativsystem som bara är de virtuella maskinerna.

Som ni vet ingenting är perfekt har virtualisering också några brister. Att köra flera virtuella maskiner i samma värdoperativsystem leder till försämrad prestanda. Detta beror på att gäst-operativsystemet körs ovanpå värd-operativsystemet, som kommer att ha sin egen kärna och en uppsättning bibliotek och beroenden. Detta tar upp en stor bit av systemresurser, dvs. hårddisk, processor och särskilt RAM.

Ett annat problem med Virtual Machines som använder virtualisering är att det tar nästan en minut att starta upp.Detta är mycket viktigt vid applikationer i realtid.

Följande är nackdelarna med virtualisering:

  • Att köra flera virtuella maskiner leder till instabil prestanda
  • Hypervisors är inte lika effektiva som värdoperativsystemet
  • Startprocessen är lång och tar tid

Dessa nackdelar ledde till framväxten av en ny teknik som heter Containerization. Låt mig berätta om Containerization.

Vad är behållare?

Containerization är tekniken för att föra virtualisering till operativsystemsnivå. Medan virtualisering ger abstraktion till hårdvaran, ger Containerization abstraktion till operativsystemet. Observera att behållare också är en typ av virtualisering. Containerisering är dock effektivare eftersom det inte finns något gäst-operativsystem här och använder värdens operativsystem, delar relevanta bibliotek och resurser efter behov till skillnad från virtuella maskiner. Applikationsspecifika binärer och bibliotek med containrar körs på värdkärnan, vilket gör bearbetning och körning mycket snabbt. Till och med att starta upp en container tar bara en bråkdel av en sekund. Eftersom alla behållare delar, är värd operativsystem och innehåller endast applikationsrelaterade binärer och bibliotek. De är lätta och snabbare än virtuella maskiner.

Fördelar med behållare jämfört med virtualisering:

  • Behållare på samma OS-kärna är lättare och mindre
  • Bättre resursanvändning jämfört med virtuella datorer
  • Startprocessen är kort och tar några sekunder

I diagrammet till höger kan du se att det finns ett värdoperativsystem som delas av alla containrar. Behållare innehåller endast applikationsspecifika bibliotek som är separata för varje container och de är snabbare och slösar inte bort några resurser.

Alla dessa behållare hanteras av containeriseringsskiktet som inte är inbyggt i värdoperativsystemet. Därför behövs en programvara som gör det möjligt för dig att skapa och köra containrar på ditt värdoperativsystem.

Kolla in den här Docker-självstudievideoen för en djupgående förståelse för Docker.

Docker-handledning för nybörjare | Vad är Docker? | DevOps-verktyg | Edureka

Låt mig nu ta dig igenom introduktionen till Docker.

Docker-handledning - Introduktion till Docker

Docker är en containeriseringsplattform som paketerar din applikation och alla dess beroenden tillsammans i form av behållare för att säkerställa att din applikation fungerar sömlöst i alla miljöer.

Som du kan se i diagrammet till höger körs varje applikation i en separat behållare och har sin egen uppsättning bibliotek och beroenden. Detta säkerställer också att det finns processnivåisolering, vilket innebär att varje applikation är oberoende av andra applikationer, vilket ger utvecklare säkerhet att de kan bygga applikationer som inte stör varandra.

Som utvecklare kan jag bygga en container som har olika applikationer installerade och ge den till mitt QA-team som bara behöver köra containern för att replikera utvecklarmiljön.

Fördelar med Docker

Nu behöver QA-teamet inte installera all beroende programvara och applikationer för att testa koden och detta hjälper dem att spara mycket tid och energi. Detta säkerställer också att arbetsmiljön är konsekvent i alla individer som är involverade i processen, från utveckling till distribution. Antalet system kan enkelt skalas upp och koden kan distribueras utan problem.

Virtualisering vs behållare

Med både virtualisering och behållare kan du köra flera operativsystem i en värdmaskin.

Virtualisering handlar om att skapa många operativsystem i en enda värdmaskin. Containerization å andra sidan kommer att skapa flera behållare för varje typ av applikation efter behov.

Figur: Vad är Big Data Analytics - Virtualisering kontra containerisering

Som vi kan se från bilden är den största skillnaden att det finns flera gästoperativsystem i virtualisering som saknas i behållare. Den bästa delen av Containerization är att den är mycket lätt jämfört med den tunga virtualiseringen.

Låt oss nu installera Docker.

Installera Docker:

Jag installerar Docker i min Ubuntu 17.10-maskin. Nedan följer stegen för att installera Docker:

  1. Installera nödvändiga paket
  2. Installera Docker-arkiv
  3. Installera Docker på Ubuntu

1. Installera obligatoriska paket:

Det finns vissa paket du behöver i ditt system för att installera Docker. Utför kommandot nedan för att installera dessa paket.

sudo apt-get install curl apt-transport-https ca-certifikat programvaruegenskaper-gemensamt

2. Installera Docker Repository:

Importera nu Dockers officiella GPG-nyckel för att verifiera paketets signatur innan du installerar dem med apt-get. Kör kommandot nedan på terminalen:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add

Lägg nu till Docker-arkivet på ditt Ubuntu-system som innehåller Docker-paket inklusive dess beroenden, för det kör du kommandot nedan:

sudo add-apt-repository 'deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) stabil'

3. Installera Docker på Ubuntu:

Nu måste du uppgradera apt index och installera Docker community-utgåva, för att utföra kommandona nedan:

sudo apt-get uppdatering sudo apt-get install docker-ce

Grattis! Du har installerat Docker. Kolla också in några vanliga Docker-kommandon .

Låt oss nu se några viktiga Docker-koncept.

Dockerfil, Docker-bild och Docker-behållare:

  1. En Docker-bild skapas av sekvensen av kommandon skrivna i en fil som kallas Dockerfile.
  2. När den här Dockerfilen körs med ett dockerkommando blir det en Docker-bild med ett namn.
  3. När den här bilden körs med 'docker run' -kommandot startar den i sig vilken applikation eller tjänst den måste starta vid körningen.

Docker Hub:

Docker Hub är som GitHub för Docker-bilder. Det är i grunden ett molnregister där du kan hitta Docker-bilder som laddas upp av olika grupper, du kan också utveckla din egen bild och ladda upp på Docker Hub, men först måste du skapa ett konto på DockerHub.

Docker-arkitektur:

Den består av en Docker Engine som är en klientserverapplikation med tre huvudkomponenter:

  1. En server som är en typ av långvarigt program som kallas en demonprocess (docker-kommandot).
  2. Ett REST API som specificerar gränssnitt som program kan använda för att prata med demonen och instruera den vad den ska göra.
  3. En CLI-klient (kommandoradsgränssnitt) (docker-kommandot).
  4. CLI använder Docker REST API för att styra eller interagera med Docker-demonen genom skript eller direkta CLI-kommandon. Många andra Docker-applikationer använder underliggande API och CLI.

Se den här bloggen för att läsa mer om .

Slutligen i den här Docker-handledningsbloggen kommer jag att prata om Docker Compose.

Docker Compose:

Docker Compose används i princip för att köra flera Docker Containers som en enda server. Låt mig ge dig ett exempel:

java har-en relation

Antag att om jag har en applikation som kräver WordPress, Maria DB och PHP MyAdmin. Jag kan skapa en fil som startar båda behållarna som en tjänst utan att behöva starta var och en separat. Det är verkligen användbart särskilt om du har en mikroservicearkitektur.

Se min blogg på Docker Container att förstå hur man utför det praktiskt.

Du kan också läsa den här bloggen om hur du kan containerisera en genomsnittlig stackapplikation med Docker Compose.

Med detta kommer vi till ett slut på Docker Tutorials första blogg om Introduction to Docker & Containerization.

Gå igenom vår nästa blogg på Docker:

Nu när du har förstått vad som är DevOps, kolla in vårt av Edureka, ett pålitligt inlärningsföretag online med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Edureka DevOps Certification Training-kursen hjälper eleverna att få expertis inom olika DevOps-processer och verktyg som Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack och GIT för att automatisera flera steg i SDLC.

Har du en fråga till oss? Vänligen nämna det i kommentarfältet så återkommer vi till dig.