logo

Vad är Docker?

Docker är en uppsättning PaaS-produkter (Platforms as a Service) som använder virtualisering på operativsystemnivå för att leverera programvara i paket som kallas behållare. Behållare är isolerade från varandra och paketerar sin egen programvara, bibliotek och konfigurationsfiler; de kan kommunicera med varandra genom väldefinierade kanaler. Alla behållare körs av en enda operativsystemkärna och använder därför färre resurser än en virtuell maskin.

Innehållsförteckning



Vad är Docker?

Hamnarbetare är en öppen källkod containerisering plattform med vilken du kan packa din applikation och alla dess beroenden i en standardiserad enhet som kallas en container. Containrar är lätta i vikt vilket gör dem bärbara och de är isolerade från den underliggande infrastrukturen och från varandra container. Du kan köra docker-bild som en hamnarcontainer i vilken maskin som helst där docker är installerad utan att vara beroende av operativ system.

Docker fick sin popularitet på grund av dess inverkan på mjukvaruutveckling och distribution. Följande är några av de främsta anledningarna till att hamnarbetare blir populärt:

  1. Portabilitet: Docker underlättar utvecklarna att paketera sina applikationer med alla beroenden i en enda lättviktsbehållare. Det gör det möjligt att säkerställa konsekvent prestanda i de olika datormiljöerna.
  2. Reproducerbarhet: Genom att kapsla in applikationerna med deras beroenden i en container säkerställer det att mjukvaruinställningarna förblir konsekventa i utvecklings-, test- och produktionsmiljöerna.
  3. Effektivitet: Docker genom sin containerbaserade arkitektur optimerar den resursutnyttjandet. Det tillåter utvecklarna att köra flera isolerade applikationer på ett enda värdsystem.
  4. Skalbarhet: Dockers skalbarhetsfunktioner underlättade utvecklarna att göra det enklare att hantera sina applikationer när arbetsbelastningen ökade.

Vad är en Dockerfile?

De Dockerfil använder DSL (Domain Specific Language) och innehåller instruktioner för att skapa en Docker-bild. Dockerfile kommer att definiera processerna för att snabbt producera en bild. När du skapar din applikation bör du skapa en Dockerfil i ordning sedan Docker-demon kör alla instruktioner från topp till botten.



(Docker-demonen, ofta kallad Docker, är en bakgrundstjänst som hanterar Docker-behållare på ett system.)

  • Det är ett textdokument som innehåller nödvändiga kommandon som vid körning hjälper till att sammanställa en Docker-bild.
  • Docker-bild skapas med en Dockerfil.
Dockerfil

För att veta mer om Dockerfilen, se Docker – Begreppet Dockerfile .

Vad är Docker Architecture och hur Docker fungerar?

Docker använder sig av en klient-server-arkitektur. Docker-klienten pratar med docker-demonen som hjälper till att bygga, köra och distribuera docker-behållarna. Docker-klienten körs med demonen på samma system eller så kan vi ansluta Docker-klienten med Docker-demonen på distans. Med hjälp av REST API över en UNIX-socket eller ett nätverk interagerar docker-klienten och demonen med varandra. För att veta mer om hur man arbetar med hamnarbetare, se Dockers arkitektur .



Docker-arkitektur

Vad är Docker Image?

Det är en fil, som består av flera lager, som används för att exekvera kod i en Docker-behållare. De är en uppsättning instruktioner som används för att skapa hamnarcontainrar. Docker Image är ett körbart programpaket som innehåller allt som behövs för att köra en applikation. Den här bilden informerar om hur en behållare ska instansieras, vilket avgör vilka programvarukomponenter som ska köras och hur. Docker Container är en virtuell miljö som paketerar applikationskod med alla beroenden som krävs för att köra applikationen. Applikationen körs snabbt och tillförlitligt från en datormiljö till en annan.

Vad är Docker Container?

Docker-behållare är en runtime-instans av en bild. Tillåter utvecklare att paketera applikationer med alla delar som behövs, såsom bibliotek och andra beroenden. Docker-behållare är runtime-instanser av Docker-avbildningar. Behållare innehåller hela kitet som krävs för en applikation, så applikationen kan köras på ett isolerat sätt. Till exempel - Anta att det finns en bild av Ubuntu OS med NGINX SERVER när den här bilden körs med kommandot docker run, då kommer en container att skapas och NGINX SERVER kommer att köras på Ubuntu OS.

Vad är Docker Hub?

Docker Hub är en förvarstjänst och det är en molnbaserad tjänst där människor driver sina Docker Container Images och även drar Docker Container Images från Docker Hub när som helst eller var som helst via internet. Generellt gör det det enkelt att hitta och återanvända bilder. Det ger funktioner som att du kan pusha dina bilder som privat eller offentligt register där du kan lagra och dela Docker-bilder.

Främst använder DevOps-teamet Docker Hub. Det är ett verktyg med öppen källkod och fritt tillgängligt för alla operativsystem. Det är som lagring där vi lagrar bilderna och drar bilderna när det behövs. När en person vill pusha/dra bilder från Docker Hub måste de ha en grundläggande kunskap om Docker. Låt oss diskutera kraven för Docker-verktyget.

Vad är Docker Compose?

Docker Compose kommer att köra en YAML-baserad multicontainerapplikation. YAML-filen består av alla konfigurationer som behövs för att distribuera behållare Docker Compose , som är integrerad med Hamnarsvärm , och ger anvisningar för att bygga och distribuera containrar. Med Docker Compose är varje behållare konstruerad för att köras på en enda värd.

Hur man laddar ner Docker Desktop?

Docker Desktop tillhandahåller ett grafiskt användargränssnitt för att fungera på dockningscontainrar, docker-bilder och dockningsnätverk. Docker desktop tillhandahåller en separat miljö som innehåller Docker Engine, Docker CLI, Docker Compose, Kubernetes, och andra verktyg som behövs för att bygga, skicka och köra applikationerna i form av containrar vilket gör det mer användarvänligt. För att veta mer om hur man installerar docker desktop, se Docker Desktop Exempelbild.

Docker-kommandon

Genom att introducera de väsentliga docker-kommandona blev docker en kraftfull programvara för att effektivisera containerhanteringsprocessen. Det hjälper till att säkerställa ett sömlöst arbetsflöde för utveckling och distribution. Följande är några av docker-kommandon som används ofta:

  • Docker Run: Det används för att starta behållarna från bilder, med angivande av körtidsalternativ och kommandon.
  • Docker Pull: Den hämtar behållarbilderna från behållarregistret som Docker Hub till den lokala maskinen.
  • Docker ps : Det hjälper till att visa de körande behållarna tillsammans med deras viktiga information som behållar-ID, använd bild och status.
  • Docker Stop : Det hjälper till att stoppa de löpande containrarna och stänger graciöst av processerna i dem.
  • Docker Start: Det hjälper till att starta om de stoppade behållarna och återuppta deras verksamhet från det tidigare tillståndet.
  • Docker-inloggning: Det hjälper att logga in på docker-registret och möjliggör åtkomst till privata arkiv.

För att veta mer om docker-kommandon, se Docker – Instruktionskommandon .

Docker Engine

Mjukvaran som är värd för behållarna heter Docker Engine. Docker Engine är en klient-serverbaserad applikation. Dockermotorn har tre huvudkomponenter:

  1. Server: Det är ansvarigt för att skapa och hantera Docker-bilder, behållare, nätverk och volymer på Docker. Det kallas en demonprocess.
  2. REST API : Den specificerar hur applikationerna kan interagera med servern och instruerar den vad den ska göra.
  3. Klient: Klienten är ett docker-kommandoradsgränssnitt (CLI), som låter oss interagera med Docker genom att använda docker-kommandona.

Varför använda Docker?

Docker kan användas för att packa applikationen och dess beroenden vilket gör det lätt och enkelt att skicka koden snabbare med mer tillförlitlighet. Docker gör det mycket enkelt att köra applikationen i produktionsmiljön docker container kan vara plattformsoberoende om docker-motorn är installerad i maskinen.

  • Resurseffektivitet : Docker hjälper till att maximera resursutnyttjandet genom att köra flera behållare på en enda värd. Det hjälper till att minska infrastrukturkostnaderna och förbättrar effektiviteten.
  • Versionskontroll: Det förenklar versioneringen av applikationerna och deras beroenden, vilket säkerställer konsistensen och underlättar samarbetet mellan teamen.
  • Microservices Agility: Det möjliggör införandet av mikrotjänsters arkitektur, vilket främjar skalbarhet, flexibilitet och felisolering agil applikationsutveckling.

Vad är Docker For AWS?

Docker är det mest kraftfulla verktyget för att köra applikationen i form av containrar. Docker-containrar är lätta i vikt och kan köras på alla operativsystem.

AWS tillhandahåller Amazon Elastic Container Service ( Amazon ECS ) det är en fullständigt hanterad containertjänst genom vilken du kan distribuera, skala och hantera dockercontainrarna. Amazon ECS är den mest pålitliga plattformen enligt prestandan och den kan också integreras med andra AWS-tjänster som lastbalansering, tjänsteupptäckt och övervakning av containerhälsa. Att veta mer om Amazon Elastic Container Service (Amazon ECS) .

Skillnaden mellan Docker-containrar och virtuella maskiner

Följande är skillnaderna mellan dockningscontainrar och virtuella maskiner:

Dockercontainrar

Virtuella maskiner

Docker-behållare innehåller binärer, bibliotek och konfigurationsfiler tillsammans med själva applikationen.

Virtuella maskiner (VM) körs på Hypervisors, vilket gör att flera virtuella maskiner kan köras på en enda maskin tillsammans med sitt eget operativsystem.

De innehåller inte ett gäst-OS för varje behållare och förlitar sig på den underliggande OS-kärnan, vilket gör behållarna lätta.

Varje virtuell dator har sin egen kopia av ett operativsystem tillsammans med applikationen och nödvändiga binärer, vilket gör den betydligt större och kräver mer resurser.

Behållare delar resurser med andra behållare i samma värdoperativsystem och tillhandahåller processisolering på OS-nivå.

De tillhandahåller processisolering på maskinvarunivå och startar långsamt.

Installera Docker på Ubuntu

Följande steg guidar dig i installationen av docker på ubuntu:

Steg 1: Ta bort den gamla versionen av Docker

  • Utför följande kommando för att ta bort den gamla versionen av docker-programvaran:
$ sudo apt-get remove docker docker-engine docker.io containerd runc>

Steg 2: Installera Docker Engine

  • Följande kommando används för installation av docker-motorn:
$ sudo apt-get update   $ sudo apt-get install   ca-certificates   curl   gnupg   lsb-release $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ echo   'deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu   $(lsb_release -cs) stable' | sudo tee /etc/apt/sources.list.d/docker.list>/dev/null $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin $ sudo groupadd docker $ sudo usermod -aG docker $USER>

Steg 3: Verifiera Docker-installationen

  • Kontrollera om docker har installerats på ditt system genom att försöka köra en behållare med följande kommando:
$ sudo docker run hello-world>

För mer information om installationen av docker på ubuntu, se detta - Artikel

Exempelexempel: Containerizing-applikation med Docker

Följande steg guider för att behålla applikationen med Docker:

Steg 1: Skapa Dokcerfile och Python Application

  • Skapa en mapp med 2 filer (Dockerfile och main.py-fil) i den

Steg 2: Utveckla Python-kod

  • Redigera main.py med koden nedan, annars kan du prova att utveckla din egen python-kod.
Pytonorm
#!/usr/bin/env python3 print('Docker and GFG rock!')>

Steg 3: Utveckla en Dockerfil

  • Redigera Dockerfilen med instruktionerna nedan för att utveckla Dockerfilen:
FROM python:latest COPY main.py / CMD [ 'python', './main.py' ]>

Steg 4: Skapa en Docker-bild

  • När du har skapat och redigerat filen main.py och Dockerfilen, skapa din bild som innehåller din applikation genom att köra följande kommando:
$ sudo docker build -t python-test .>
  • Alternativet '-t' låter dig definiera namnet på din bild. ’python-test’ är namnet vi har valt för bilden.

Steg 5: Kör Docker Container

  • När bilden har skapats är din kod redo att startas.
$ sudo docker run python-test>

För att veta mer om denna containerisering av din applikation, se detta - Artikel

Exempelexempel för att skicka en bild till Docker Hub

Följande steg hjälper dig att skicka en bild till Dockerhub:

Steg 1: Skapa ett konto på Docker Hub eller använd ett befintligt om du redan har ett.

Steg 2: Klicka på knappen Skapa arkiv, ange namnet på filen och klicka på Skapa.

Steg 3: Nu kommer vi att tagga vår bild och skicka den till Docker Hub-förvaret som vi just skapade.

  • Kör nu kommandot nedan för att lista docker-bilder:
$ docker images>
  • Ovanstående kommer att ge oss detta resultat
REPOSITORY TAG IMAGE_ID CREATED SIZE afrozchakure/python-test latest c7857f97ebbd 2 hours ago 933MB>
  • Bild-ID används för att tagga bilden. Syntaxen för att tagga bilden är:
docker tag /python-test:latest $ docker tag c7857f97ebbd afrozchakure/python-test:latest>

Steg 4: Skicka bilden till Docker Hub-förrådet

$ docker push afrozchakure/python-test>

För att veta mer om att publicera bilderna till dockerhub, se detta – Artikel

Hämta och kör bilden från Docker Hub

1. För att ta bort alla versioner av en viss bild från vårt lokala system använder vi bild-ID för den.

$ docker rmi -f af939ee31fdc>

2. Kör nu bilden, den hämtar bilden från docker-hubben om den inte finns på din lokala dator.

$ docker run afrozchakure/python-test>

Fördelar med Docker

Följande är några av fördelarna med Docker:

  • Portabilitet: Hamnaranläggningar med skapandet av lätta bärbara containrar som inte kan fungera på vilken maskin som helst oavsett de underliggande operativsystemen.
  • Isolering: Docker through-containers ger en hög nivå av isolering genom att göra det möjligt för applikationerna att köras oberoende av varandra för att ta itu med de problem som en container inte påverkar den andra.
  • Reproducerbarhet: Med Docker-utvecklare kan enkelt paketera sina applikationer och deras beroenden till återanvändbara bilder. Det möjliggör konsekventa och reproducerbara konstruktioner i utvecklings-, test- och produktionsmiljöer.
  • DevOps-integration : Det främjar samarbete och automatisering över hela mjukvaruutvecklingens livscykel för att hantera den ökande arbetsbelastningen.

Alternativ för Docker

Följande är alternativen för Docker:

  • Dämpad : Erbjuder en Docker-kompatibel containermotor med fokus på säkerhet och kompatibilitet, idealisk för miljöer där Docker inte är att föredra eller tillgänglig.
  • rkt: En lätt containerruntime utvecklad av CoreOS, designad för enkelhet, säkerhet och komponerbarhet, och erbjuder ett alternativ till Dockers containerruntime.
  • LXC (Linux-behållare): Ger virtualisering på operativsystemnivå för att köra flera isolerade Linux-system (behållare) på en enda värd, vilket erbjuder ett lättviktigt alternativ till Docker för vissa användningsfall.
  • containerd: En industristandard kärncontainerkörning utvecklad av Docker, Inc., som erbjuder en minimal och stabil plattform för att bygga containeriserade applikationer, som ofta används som ett alternativ på lägre nivå till Docker för mer avancerade containerorkestreringssystem som Kubernetes.

Docker Security

Följande är några av insikterna om hamnarbetaresäkerhet:

  • Isolering : Docker-containrar ger den starka isoleringen som säkerställer att applikationerna och bearbetningen körs.
  • Oföränderlig infrastruktur : Det främjar användningen av oföränderlig infrastruktur, där behållare byggs från de oföränderliga bilderna som är versionskontrollerade.
  • Resurs begränsningar: Det låter dig definiera resursbegränsningarna för behållare som CPU och minnesgränser.
  • Säkerhetsskanning: Den tillhandahåller de inbyggda säkerhetsskanningsverktygen som gör att du kan skanna behållarbilderna efter kända sårbarheter och skadlig programvara före distribution.

Slutsats

Så du har lärt dig om grunderna i Docker, skillnaden mellan virtuella maskiner och Docker-behållare längs några vanliga terminologier i Docker. Vi gick också igenom installationen av Docker på våra system. Vi skapade en applikation med Docker och skickade vår bild till Docker Hub. Slutligen lärde vi oss hur vi kunde ta bort en viss bild från vårt lokala system och senare hämta bilden från Docker Hub om den inte finns lokalt.

Docker – Vanliga frågor

Vad är Docker Hub kort och gott?

Docker Hub är ett offentligt register där användare/utvecklare kan lagra och dela systemavbildningar som skapats av dem och få dem att enkelt komma åt och återanvända bilder för andra mjukvaruutvecklare.

sträng i int

Vad krävs för att använda Docker Hub?

För att använda Docker Hub måste användaren ha ett konto på Docker Hub-plattformen. Om du inte har ett konto på Docker Hub kan du skapa ett genom att sjunga upp. När du väl har ett konto på Docker kan du utföra operationer som push och dra bilder till och från Docker Hub.

Vad är Docker-loggar?

Docker-demon och Docker-behållare genererar docker-loggarna i form av textmeddelanden som hjälper dig att ytterligare felsöka problem, övervaka prestanda för dina applikationer och samla information om tillståndet i din Docker-miljö.

Vad är Docker Build?

Docker build är ett kommando som används för att bygga docker-bilden med hjälp av Dockerfilen.

Vad är Docker Ubuntu?

Docker Ubuntu är termen som används för att använda Docker-tjänsten med Ubuntu-baserade operativsystem. Att köra Docker är bäst lämpat för den populära Linux-distributionen Ubuntu.