Docker-handledning för nybörjare: Grunderna, Architecture, Containers

Vad är Docker?

Hamnarbetare är en mjukvaruutvecklingsplattform för virtualisering med flera Operatingssystem som körs på samma värd. Det hjälper till att separera infrastruktur och applikationer för att snabbt kunna leverera mjukvara. Till skillnad från Hypervisors, som används för att skapa VM (Virtuella maskiner), utförs virtualisering i Docker på systemnivå, även kallade Docker-containrar.

Som du kan se skillnaden i bilden nedan kör Docker-behållare ovanpå värdens Operationssystem. Detta hjälper dig att förbättra effektiviteten och säkerheten. Dessutom kan vi köra fler behållare på samma infrastruktur än vi kan köra virtuella maskiner eftersom behållare använder färre resurser.

Virtualisering i Docker vs Hypervisor
Virtualisering i Docker vs Hypervisor

Till skillnad från virtuella datorer som kan kommunicera med värdens hårdvara (ex: Ethernet-adapter för att skapa fler virtuella adaptrar) kör Docker-containrar i en isolerad miljö ovanpå värdens OS. Även om din värd kör Windows OS kan du köra Linux-bilder i behållare med hjälp av Hyper-V, som automatiskt skapar en liten virtuell dator för att virtualisera systemets basbild, i det här fallet, Linux.

Varför använda Docker?

  • Docker är datorprogramvara som används för virtualisering för att ha flera Operatingssystem körs på samma värd
  • Docker är klient-server typ av applikation vilket innebär att vi har klienter som vidarebefordrar till servern
  • Docker-bilder är "källkoden" för våra containrar; vi använder dem för att bygga
  • Dockerfile har två typer av register 1.) offentliga och 2) privata register
  • Containers är de organisatoriska enheterna för Docker-volymen. Enkelt uttryckt är en bild en mall och en behållare är en kopia av den mallen. Du kan ha flera behållare (kopior) av samma bild.

Hamnarbetare Architecture

Nu i denna Docker-containerhandledning, låt oss prata om Dockers huvudkomponenter i Docker Architecture:

Hamnarbetare Architecture
Hamnarbetare Architecture

Docker Engine

Docker är klient-server typ av applikation vilket innebär att vi har klienter som vidarebefordrar till servern. Så Docker-demonen heter: dockerd är Docker-motorn som representerar servern. Docker-demonen och klienterna kan köras på samma eller fjärrvärd, och de kommunicerar genom kommandoradsklientbinär, såväl som en fullständig RESTful API att interagera med demonen: dockerd.

Docker-bilder

Docker-bilder är "källkoden" för våra containrar; vi använder dem för att bygga containrar. De kan ha programvara förinstallerad som påskyndar distributionen. De är bärbara och vi kan använda befintliga bilder eller bygga våra egna.

Docker-register

Docker lagrar bilderna vi bygger i register. Det finns offentliga och privata register. Docker-företaget har ett offentligt register som kallas Hamnarnav, där du även kan lagra bilder privat. Docker hub har miljontals bilder, som du kan börja använda nu.

Dockercontainrar

Containers är de organisatoriska enheterna och ett av Dockers grundkoncept. När vi bygger en bild och börjar köra den; vi kör i en container. Behållaranalogin används på grund av portabiliteten av programvaran vi har igång i vår behållare. Vi kan flytta den, med andra ord "sända" programvaran, modifiera, hantera, skapa eller bli av med den, förstöra den, precis som lastfartyg kan göra med riktiga containrar.

Enkelt uttryckt är en bild en mall och en behållare är en kopia av den mallen. Du kan ha flera behållare (kopior) av samma bild.

Nedan har vi en bild som perfekt representerar interaktionen mellan de olika komponenterna och hur Docker containerteknologi fungerar.

Vad vi har flera hamnarkommandon docker pull, docker run .. vi kommer att prata mer om det senare.

Hur man installerar Docker på Linux/Ubuntu

Nedan är en steg för steg Docker-installationsprocess på Linux/Ubuntu:

steg 1) För att installera Docker måste vi använda Docker-teamets DEB-paket.

För det, någon förutsättning Ubuntu paket krävs.

Använd kommandot nedan för att installera Ubuntu paket

$ sudo apt-get install \
apt-transport-https \
ca-certificates curl \
software-properties-common

*tecknet "\" är inte nödvändigt det används för den nya raden, om du vill kan du skriva kommandot utan att använda "\" på bara en rad.

Steg 2) Lägg till den officiella Docker GPG-nyckeln med fingeravtrycket.

Använd kommandot nedan Docker för att ange GPG-nyckeln

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

Steg 3) Lägg sedan till Docker APT-förvaret.

Använd kommandot nedan Docker för att lägga till förvaret

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

Du kan bli ombedd att bekräfta att du vill lägga till förvaret och få GPG-nyckeln automatiskt till din värd.

Kommandot lsb_release bör fylla i Ubuntu distributionsversion av din värd.

Steg 4) Efter att ha lagt till GPG-nyckeln,

Uppdatera APT-källor med Docker-kommandot nedan

$ sudo apt-get update

Vi kan nu installera själva Docker-paketet.

Steg 5) När APT-källorna har uppdaterats,

Börja installera Docker-paketen på Ubuntu med Docker-kommandot nedan

$ sudo apt-get install docker-ce

Det ovan angivna kommandot installerar Docker och andra ytterligare nödvändiga paket. Före Docker 1.8.0 var paketnamnet lxc-docker, och mellan Docker 1.8 och 1.13 var paketnamnet docker-engine.

ANMÄRKNINGAR: Hamnarbetare för Windows Kräver Windows 10 Pro eller Enterprise version 14393, eller Windows server 2016 RTM att köra

Hur man använder Docker med grundläggande Docker-kommandon

Så här använder du Docker med grundläggande Docker-kommandon:

Det mest grundläggande kommandot vi måste köra efter att ha installerat Docker är $ docker info som vi sa tidigare.

$ sudo docker info

Du bör få liknande eller följande resultat

Använd Docker med Basic Docker-kommandon

Som vi kan se i Docker-exemplet ovan har vi information om docker-containrar hur många som körs, pausas eller stoppas och hur många bilder vi har laddat ner. Så låt oss få vår första bild i denna Docker-kommandohandledning.

$ sudo docker pull alpine

Med det här kommandot säger vi åt docker att ladda ner bilden alpine, att hämta den från det offentliga registret, den senaste versionen som är inställd som standard.

*alpine är en minimal Docker-bild baserad på Alpine Linux med ett komplett paketindex och endast 5 MB i storlek.

Om vi ​​vill köra bilden som en behållare kommer vi att använda följande kommando i denna Docker-handledning.

$ sudo docker run -i -t alpine /bin/bash

Om vi ​​kör kommandot skickas vi direkt till alpinens terminal. -i-flaggan håller STDIN öppen från behållaren, även när du inte är ansluten till den. Denna ihållande standardinmatning är hälften av vad du behöver för ett interaktivt skal. -t-flaggan är den andra halvan och som instruerar Docker att tilldela en pseudo-tty till behållaren. Detta ger oss ett interaktivt skal i den nya behållaren. Vi lämnar behållaren med ett enkelt utgångskommando.

Nu i denna Docker grundhandledning kan vi prova att köra en Ubuntu bild.

$ sudo docker run -it ubuntu /bin/bash

Du kan märka docker-checkar för bilden lokalt, och om den inte finns där dras bilden automatiskt från bildbiblioteket och återigen har vi ett interaktivt skal igång. Vi kan också namnge behållarna när vi kör dem.

$ sudo docker run –-name our_container -it ubuntu /bin/bash

och vi går ut igen.

Vi kan också köra container vi tidigare skapat, utan ett interaktivt skal.

$ sudo docker start container_name

Och stoppa containerskrivningen docker stop container_name

$ sudo docker stop container_name

Vill vi se alla containrar som körs kör vi bara

$ docker ps

Och för alla behållare lägger vi till "- a" i slutet av samma kommando, som denna docker ps -a.

Det här kommandot visar Containers ID, vilken bild som används när den skapades, körstatus, exponerade portar och slumpmässigt genererat namn för containern för enklare hantering.

När vi kör containrar vill vi också veta hur mycket resurser de använder, för det ändamålet kan vi använda kommandot.

$ docker stats

Du kan även se vilka bilder vi har laddat ner lokalt och info om dem.

$ sudo docker images

Kommandot i Docker-exemplet ovan visar docker-bilden med en tagg som visar vår bildversion, ett distinkt bild-ID, när skapades och bildstorlek.

Vad är virtualisering?

Tidigare var processen för att distribuera en tjänst långsam och smärtsam. Först skrev utvecklarna kod; sedan skulle operationsteamet distribuera det på maskiner av ren metall, där de var tvungna att leta efter biblioteksversioner, patchar och språkkompilatorer för att koden skulle fungera. Om det fanns några buggar eller fel skulle processen börja om igen, utvecklarna skulle fixa det och sedan igen var det operativa teamet där för att distribuera.

Det blev en förbättring med skapandet av Hypervisors. Hypervisorer har flera Virtuella maskiner eller virtuella datorer på samma värd, som kan vara igång eller avstängd. VM:er minskade väntetiden för att distribuera kod och felkorrigering på ett stort sätt, men den verkliga spelförändringen var Docker-containrar.

Viktiga Docker-kommandon

Nedan är de viktiga Docker-kommandona:

Kommando BESKRIVNING
hamnarbetare info Informationskommando
hamnare dra Ladda ner en bild
docker kör -i -t bildnamn /bin/bash Kör bilden som en behållare
docker starta vår_container Starta behållaren
docker stop container_name Stoppa behållaren
docker ps Lista över alla containrar som körs
hamnarstatistik Containerinformation
dockerbilder Lista över nedladdade bilder
Docker Cleanup Döda alla rinnande containrar.

Läs också Docker jobbintervju frågor och svar för fräschare såväl som erfarna proffs.

Sammanfattning

  • Docker är en mjukvaruutvecklingsplattform för virtualisering med flera Operatingssystem som körs på samma värd. Det hjälper till att separera infrastruktur och applikationer för att snabbt kunna leverera mjukvara.
  • Hamnarbetare Architecture: Docker Engine, Docker Images, Docker Registries, Docker Containers.
  • Docker Engine: Docker är klient-server typ av applikation vilket innebär att vi har klienter som vidarebefordrar till servern. Så Docker-demonen heter: dockerd är Docker-motorn som representerar servern.
  • Docker-bilder: Docker-bilder är "källkoden" för våra containrar; vi använder dem för att bygga containrar. De kan ha programvara förinstallerad som påskyndar distributionen. De är bärbara och vi kan använda befintliga bilder eller bygga våra egna.
  • Docker-register: Docker lagrar bilderna vi bygger i register. Det finns offentliga och privata register. Docker-företaget har ett offentligt register som heter Docker hub, där du även kan lagra bilder privat. Docker hub har miljontals bilder, som du kan börja använda nu.
  • Dockercontainrar: Containers är de organisatoriska enheterna och ett av Dockers grundkoncept. När vi bygger en bild och börjar köra den; vi kör i en container. Behållaranalogin används på grund av portabiliteten av programvaran vi har igång i vår behållare.