Docker-handledning för nybörjare: Grunderna, Architecture, Containers
⚡ Smart sammanfattning
Docker är en containerplattform som paketerar applikationer och deras beroenden i portabla, lätta containrar. Denna översikt förklarar Docker-arkitekturen, installationen på Ubuntu, viktiga kommandon och hur containrar skiljer sig från traditionella virtuella maskiner för snabbare programvaruleverans.

Docker är en av de mest populära containerplattformarna som används i moderna DevOps och molnarbetsflöden. Den här Docker-handledningen för nybörjare förklarar vad Docker är, hur Docker-arkitekturen fungerar, hur man installerar Docker på Ubuntuoch de grundläggande kommandona som används för att hantera bilder och containrar.
Vad är Docker?
Hamnarbetare är en plattform för mjukvaruutveckling för virtualisering som låter flera operativsystem köras på samma värd. Den hjälper dig att separera infrastruktur från applikationer så att du kan leverera programvara snabbt. Till skillnad från hypervisorer, som används för att skapa virtuella maskiner (VM), utför Docker virtualisering på systemnivå med hjälp av enheter som kallas Docker-containrar.
Docker-containrar körs ovanpå värdoperativsystemet, som visas på bilden nedan. Detta förbättrar både effektivitet och säkerhet. Du kan också köra fler containrar än virtuella maskiner på samma infrastruktur, eftersom containrar använder färre resurser.

Till skillnad från virtuella maskiner, som kan kommunicera direkt med värdhårdvaran (till exempel en Ethernet-adapter som skapar fler virtuella adaptrar), körs Docker-containrar i en isolerad miljö ovanpå värdoperativsystemet. Även om din värd kör Windows, du kan springa Linux bilder inuti behållare med hjälp av Hyper-V, vilket automatiskt skapar en liten virtuell maskin för att virtualisera basavbildningen.
Nu när du vet vad Docker är, låt oss titta på de främsta anledningarna till att team väljer det.
Varför använda Docker?
Här är de viktigaste anledningarna att använda Docker:
- Docker är programvara som används för virtualisering, vilket möjliggör flera operativsystem att köras på samma värd.
- Docker är en klient-server-applikation, vilket innebär att klienter kommunicerar med en server.
- Docker-avbildningar fungerar som "källkod" för containrar; du använder dem för att bygga.
- Docker stöder två typer av register: offentliga och privata.
- Containrar är Dockers organisatoriska enheter. Enkelt uttryckt är en avbildning en mall och en container en kopia av den mallen, så du kan köra flera containrar från samma avbildning.
Dessa fördelar kommer från hur Docker är utformat. Följande avsnitt bryter ner Docker-arkitekturen och dess kärnkomponenter.
Hamnarbetare Architecture
I den här handledningen för Docker-containrar ska vi nu titta på huvudkomponenterna i Docker-arkitekturen.
Docker Engine
Docker är en klient-server-applikation, vilket innebär att vi har klienter som vidarebefordrar förfrågningar till en server. Docker-daemonen, kallad dockerd, är Docker-motorn som representerar servern. Daemonen och klienterna kan köras på samma eller en fjärrdator, och de kommunicerar via en kommandoradsklientbinärfil och en fullständig RESTful API som interagerar med dockerd.
Docker-bilder
Docker-avbildningar är "källkoden" för våra containrar; vi använder dem för att bygga containrar. Avbildningar kan ha förinstallerad programvara, vilket snabbar upp distributionen. De är portabla, och du kan använda befintliga avbildningar eller bygga dina egna.
Docker-register
Docker lagrar de avbildningar vi skapar i register. Det finns offentliga och privata register. Docker har ett offentligt register som heter Docker-nav, där du också kan lagra bilder privat. Docker Hub har miljontals bilder som du kan börja använda direkt.
Dockercontainrar
Containrar är Dockers organisatoriska enheter och ett av dess grundläggande koncept. När vi bygger en image och kör den, kör vi den inuti en container. Containeranalogin används på grund av portabiliteten hos programvaran som körs inuti den: du kan flytta, "frakta", modifiera, hantera, skapa eller förstöra den, precis som lastfartyg hanterar 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.
Samspelet mellan dessa olika komponenter visar hur Docker-containertekniken fungerar tillsammans. Kommandon som docker pull och docker run, som vi går igenom senare, låter dig hantera detta arbetsflöde.
Med arkitekturen i åtanke, låt oss installera Docker så att du kan testa dessa komponenter själv.
Hur man installerar Docker på Linux/Ubuntu
Nedan följer en steg-för-steg-anvisning för Docker-installationen på Linux/Ubuntu:
Steg 1) För att installera Docker behöver du Docker-teamets DEB-paket. Först några förutsättningar Ubuntu Paket krävs. Använd kommandot nedan för att installera dem.
$ 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 Docker-kommandot nedan 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-arkivet med kommandot nedan.
$ 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 arkivet och att GPG-nyckeln ska läggas till automatiskt på din värddator. Kommandot lsb_release bör fylla i Ubuntu distributionsversion av din värd.
Steg 4) Efter att du har lagt till GPG-nyckeln, uppdatera APT-källorna med hjälp av Docker-kommandot nedan.
$ sudo apt-get update
Du kan nu installera själva Docker-paketet.
Steg 5) När APT-källorna har uppdaterats, börja installera Docker-paketen på Ubuntu med hjälp av Docker-kommandot nedan.
$ sudo apt-get install docker-ce
Kommandot ovan installerar Docker och andra 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.
OBS: Docker för Windows Kräver Windows 10 Pro eller Enterprise version 14393, eller Windows Server 2016 RTM, för att köras.
Hur man använder Docker med grundläggande Docker-kommandon
Så här använder du Docker med några grundläggande Docker-kommandon.
Det mest grundläggande kommandot du bör köra efter att du har installerat Docker är docker info, som nämnts tidigare.
$ sudo docker info
Du bör få ett resultat som liknar följande.
Som visas i Docker-exemplet ovan kan vi se information om Docker-containrar: hur många som körs, är pausade eller stoppade, och hur många avbildningar som har laddats ner. Nu ska vi hämta vår första avbildning.
$ sudo docker pull alpine
Med det här kommandot ber vi Docker att ladda ner avbildningen alpine och hämta den från det offentliga registret i 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 avbildningen som en container använder vi följande kommando.
$ sudo docker run -i -t alpine /bin/bash
Att köra kommandot skickar oss direkt till Alpine-terminalen. Flaggan -i håller STDIN öppen från containern även när du inte är ansluten till den; denna persistenta standardindata är hälften av vad du behöver för ett interaktivt skal. Flaggan -t är den andra halvan och instruerar Docker att tilldela en pseudo-tty till containern. Tillsammans ger de oss ett interaktivt skal i den nya containern. Vi avslutar containern med ett enkelt exit-kommando.
Nu, i den här Docker-grunderna-handledningen, kan vi prova att köra en Ubuntu bild.
$ sudo docker run -it ubuntu /bin/bash
Observera att Docker söker efter bilden lokalt, och om den inte finns där hämtas bilden automatiskt från bildbiblioteket. Återigen har vi ett interaktivt skal som körs. Vi kan också namnge containrar medan vi kör dem.
$ sudo docker run –-name our_container -it ubuntu /bin/bash
Sedan avslutar vi igen. Vi kan också köra en container som vi tidigare skapat utan ett interaktivt skal.
$ sudo docker start container_name
Och vi stoppar containern genom att skriva docker stop container_name.
$ sudo docker stop container_name
Om vi vill se alla containrar som körs kör vi helt enkelt följande.
$ docker ps
För alla containrar lägger vi till "-a" i slutet av samma kommando, som docker ps -a. Detta kommando visar container-ID, vilken avbildning den använder, när den skapades, dess körstatus, exponerade portar och ett slumpmässigt genererat namn för enklare hantering.
När vi kör containrar vill vi ofta veta hur många resurser de använder. För det ändamålet kan vi använda följande kommando.
$ docker stats
Du kan också se vilka bilder du har laddat ner lokalt, tillsammans med information om dem.
$ sudo docker images
Kommandot i Docker-exemplet ovan visar varje Docker-avbildning med en tagg som visar avbildningsversionen, ett distinkt avbildnings-ID, skapandedatum och avbildningsstorlek.
För att förstå varför containrar är en sådan förbättring är det bra att titta på hur virtualisering utvecklats.
Vad är virtualisering?
Tidigare var det långsamt och smärtsamt att driftsätta en tjänst. Utvecklare skrev kod, och sedan driftsatte driftteamet den på bare-metal-maskiner, där de var tvungna att hålla utkik efter biblioteksversioner, patchar och språkkompilatorer så att koden skulle fungera. Om det fanns buggar eller fel började processen om från början: utvecklarna åtgärdade problemet och driftteamet driftsatte om.
Saker och ting förbättrades med skapandet av hypervisorer. Hypervisorer kör flera virtuella maskiner, eller virtuella maskiner, på samma värd, som kan vara igång eller avstängda. Virtuella maskiner minskade väntetiden för att distribuera kod och åtgärda buggar avsevärt, men den verkliga revolutionen var Docker-containrar.
Dockers popularitet drivs också av orkestreringsverktyg som hanterar containrar i stor skala, såsom KubernetesInnan vi går vidare, här är en snabbreferens till de viktigaste Docker-kommandona.
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 aktiva containrar |
| hamnarstatistik | Containerinformation |
| dockerbilder | Lista över nedladdade bilder |
| Docker Cleanup | Döda alla rinnande containrar. |
Läs även dessa Docker jobbintervju frågor och svar för såväl nyutexaminerade som erfarna yrkesverksamma.

