logo

Hvad er Docker?

Docker er et sæt Platforms as a Service-produkter (PaaS), der bruger virtualisering på operativsystemniveau til at levere software i pakker kaldet containere. Containere er isoleret fra hinanden og bundter deres egen software, biblioteker og konfigurationsfiler; de kan kommunikere med hinanden gennem veldefinerede kanaler. Alle containere køres af en enkelt operativsystemkerne og bruger derfor færre ressourcer end en virtuel maskine.

Indholdsfortegnelse



Hvad er Docker?

Docker er en open source containerisering platform, hvor du kan pakke din applikation og alle dens afhængigheder i en standardiseret enhed kaldet en container. Containere er lette i vægt, hvilket gør dem bærbare, og de er isoleret fra den underliggende infrastruktur og fra hinanden. Du kan køre docker billede som en docker container i enhver maskine, hvor docker er installeret uden at være afhængig af operativ system.

Docker opnåede sin popularitet på grund af dens indvirkning på softwareudvikling og implementering. Følgende er nogle af hovedårsagerne til, at docker er blevet populær:

  1. Portabilitet: Docker letter udviklerne med at pakke deres applikationer med alle afhængigheder i en enkelt letvægtsbeholder. Det giver mulighed for at sikre ensartet ydeevne på tværs af de forskellige computermiljøer.
  2. Reproducerbarhed: Ved at indkapsle applikationerne med deres afhængigheder i en container sikrer det, at softwareopsætningerne forbliver konsistente på tværs af udviklings-, test- og produktionsmiljøer.
  3. Effektivitet: Docker gennem sin containerbaserede arkitektur optimerer den ressourceudnyttelsen. Det giver udviklerne mulighed for at køre de flere isolerede applikationer på et enkelt værtssystem.
  4. Skalerbarhed: Dockers skalerbarhedsfunktioner gjorde det lettere for udviklerne at gøre deres applikationshåndtering lettere på tidspunktet for stigning i arbejdsbelastningen.

Hvad er en Dockerfile?

Det Dockerfil bruger DSL (Domain Specific Language) og indeholder instruktioner til generering af et Docker-billede. Dockerfile vil definere processerne for hurtigt at producere et billede. Mens du opretter din applikation, bør du oprette en Dockerfile i rækkefølge siden Docker-dæmon kører alle instruktionerne fra top til bund.



(Docker-dæmonen, ofte blot omtalt som Docker, er en baggrundstjeneste, der administrerer Docker-containere på et system.)

  • Det er et tekstdokument, der indeholder nødvendige kommandoer, som ved udførelse hjælper med at samle et Docker-billede.
  • Docker-billede oprettes ved hjælp af en Dockerfil.
Dockerfil

For at vide mere om Dockerfilen henvises til Docker – Begrebet Dockerfile .

Hvad er Docker-arkitektur, og hvordan fungerer Docker?

Docker gør brug af en klient-server-arkitektur. Docker-klienten taler med docker-dæmonen, som hjælper med at bygge, køre og distribuere docker-containerne. Docker-klienten kører med dæmonen på det samme system, eller vi kan forbinde Docker-klienten med Docker-dæmonen eksternt. Ved hjælp af REST API over en UNIX-socket eller et netværk interagerer docker-klienten og dæmonen med hinanden. For at vide mere om at arbejde med docker henvises til Dockers arkitektur .



Docker-arkitektur

Hvad er Docker Image?

Det er en fil, der består af flere lag, der bruges til at udføre kode i en Docker-container. De er et sæt instruktioner, der bruges til at oprette docker-containere. Docker Image er en eksekverbar softwarepakke, der inkluderer alt det nødvendige for at køre en applikation. Dette billede informerer om, hvordan en container skal instantieres, og bestemmer, hvilke softwarekomponenter der skal køre og hvordan. Docker Container er et virtuelt miljø, der samler applikationskode med alle de afhængigheder, der kræves for at køre applikationen. Applikationen kører hurtigt og pålideligt fra et computermiljø til et andet.

Hvad er Docker Container?

Docker-container er en runtime-forekomst af et billede. Giver udviklere mulighed for at pakke applikationer med alle nødvendige dele, såsom biblioteker og andre afhængigheder. Docker-containere er runtime-forekomster af Docker-billeder. Beholdere indeholder hele det kit, der kræves til en applikation, så applikationen kan køres på en isoleret måde. For eksempel - Antag, at der er et billede af Ubuntu OS med NGINX SERVER, når dette billede køres med kommandoen docker run, så vil en container blive oprettet, og NGINX SERVER vil køre på Ubuntu OS.

Hvad er Docker Hub?

Docker Hub er en lagertjeneste, og det er en cloud-baseret tjeneste, hvor folk skubber deres Docker Container Images og også trækker Docker Container Images fra Docker Hub når som helst eller hvor som helst via internettet. Generelt gør det det nemt at finde og genbruge billeder. Det giver funktioner, såsom at du kan skubbe dine billeder som privat eller offentligt register, hvor du kan gemme og dele Docker-billeder.

Hovedsageligt DevOps-teamet bruger Docker Hub. Det er et open source-værktøj og frit tilgængeligt for alle operativsystemer. Det er ligesom opbevaring, hvor vi gemmer billederne og trækker billederne, når det er påkrævet. Når en person ønsker at skubbe/trække billeder fra Docker Hub, skal de have et grundlæggende kendskab til Docker. Lad os diskutere kravene til Docker-værktøjet.

Hvad er Docker Compose?

Docker Compose vil køre en YAML-baseret multi-container-applikation. YAML-filen består af alle konfigurationer, der er nødvendige for at implementere containere Docker Compose , som er integreret med Dockersværm , og giver instruktioner til at bygge og installere containere. Med Docker Compose er hver container konstrueret til at køre på en enkelt vært.

Sådan downloader du Docker Desktop?

Docker Desktop giver GUI til at arbejde på docker-containere, docker-billeder og docker-netværk. Docker desktop giver et separat miljø, som indeholder Docker Engine, Docker CLI, Docker Compose, Kubernetes, og andre værktøjer, der er nødvendige for at bygge, sende og køre applikationerne i form af containere, hvilket gør det mere brugervenligt. For at vide mere om, hvordan du installerer docker desktop henvises til Docker Desktop eksempelbillede.

Docker-kommandoer

Ved at introducere de essentielle docker-kommandoer blev docker en kraftfuld software til at strømline containerstyringsprocessen. Det hjælper med at sikre en problemfri udviklings- og implementeringsarbejdsgange. Følgende er nogle af docker-kommandoer, der ofte bruges:

  • Docker Run: Det bruges til at starte containerne fra billeder med angivelse af runtime-indstillinger og kommandoer.
  • Docker Pull: Det henter containerbillederne fra containerregistret som Docker Hub til den lokale maskine.
  • Docker ps : Det hjælper med at vise de kørende containere sammen med deres vigtige oplysninger som container-id, brugt billede og status.
  • Docker Stop : Det hjælper med at standse de kørende containere og lukker elegant ned for processerne i dem.
  • Docker Start: Det hjælper med at genstarte de stoppede containere og genoptage deres operationer fra den tidligere tilstand.
  • Docker login: Det hjælper at logge ind på docker-registret, hvilket giver adgang til private arkiver.

For at vide mere om docker-kommandoerne henvises til Docker – Instruktionskommandoer .

Docker Engine

Softwaren, der er vært for containerne, hedder Docker Engine. Docker Engine er en klient-server baseret applikation. Docker-motoren har 3 hovedkomponenter:

  1. Server: Det er ansvarligt for at oprette og administrere Docker-billeder, containere, netværk og volumener på Docker. Det omtales som en dæmonproces.
  2. REST API : Den specificerer, hvordan applikationerne kan interagere med serveren, og instruerer den, hvad den skal gøre.
  3. Klient: Klienten er en docker-kommandolinjegrænseflade (CLI), der giver os mulighed for at interagere med Docker ved hjælp af docker-kommandoer.

Hvorfor bruge Docker?

Docker kan bruges til at pakke applikationen og dens afhængigheder, hvilket gør det let og nemt at sende koden hurtigere med mere pålidelighed. Docker gør det meget enkelt at køre applikationen i produktionsmiljøet docker container kan være platform uafhængig, hvis docker motoren er installeret i maskinen.

  • Ressourceeffektivitet : Docker hjælper med at maksimere ressourceudnyttelsen ved at køre de flere containere på en enkelt vært. Det hjælper med at reducere infrastrukturomkostningerne og forbedrer effektiviteten.
  • Versionskontrol: Det forenkler versioneringen af ​​applikationerne og deres afhængigheder, hvilket sikrer konsistensen og gør samarbejdet lettere på tværs af teamene.
  • Microservices Agility: Det muliggør indførelse af mikroservicearkitektur, hvilket fremmer skalerbarheden, fleksibiliteten og fejlisoleringen agil applikationsudvikling.

Hvad er Docker For AWS?

Docker er det mest kraftfulde værktøj til at køre applikationen i form af containere. Docker-containere er lette i vægt og kan køres på ethvert operativsystem.

AWS leverer Amazon Elastic Container Service ( Amazon ECS ) det er en fuldt administreret containertjeneste, hvormed du kan implementere, skalere og administrere docker-containerne. Amazon ECS er den mest pålidelige platform i forhold til ydeevnen, og den kan også integreres med den anden AWS-tjeneste som belastningsbalancering, serviceopdagelse og overvågning af containersundhed. At vide mere om Amazon Elastic Container Service (Amazon ECS) .

Forskellen mellem Docker-containere og virtuelle maskiner

Følgende er forskellene mellem docker-containere og virtuelle maskiner:

Docker containere

Virtuelle maskiner

Docker-containere indeholder binære filer, biblioteker og konfigurationsfiler sammen med selve applikationen.

Virtuelle maskiner (VM'er) kører på Hypervisors, som tillader flere virtuelle maskiner at køre på en enkelt maskine sammen med sit eget operativsystem.

De indeholder ikke et gæste-OS for hver container og er afhængige af den underliggende OS-kerne, hvilket gør containerne lette.

Hver VM har sin egen kopi af et operativsystem sammen med applikationen og nødvendige binære filer, hvilket gør det væsentligt større, og det kræver flere ressourcer.

Containere deler ressourcer med andre containere i samme værts-OS og giver procesisolering på OS-niveau.

De giver procesisolering på hardwareniveau og er langsomme til at starte.

Installer Docker på Ubuntu

Følgende trin guider dig i installation af docker på ubuntu:

Trin 1: Fjern den gamle version af Docker

  • Udfør følgende kommando for at fjerne den gamle versionerede docker-software:
$ sudo apt-get remove docker docker-engine docker.io containerd runc>

Trin 2: Installation af Docker Engine

  • Følgende kommando bruges til installation af docker-motor:
$ 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>

Trin 3: Bekræft Docker-installation

  • Tjek, om docker er installeret korrekt på dit system ved at prøve at køre en container med følgende kommando:
$ sudo docker run hello-world>

For flere detaljer om installation af docker på ubuntu, se dette - Artikel

Eksempeleksempel: Containeriseringsapplikation ved hjælp af Docker

Følgende trin guider i containerisering af applikationen ved hjælp af Docker:

Trin 1: Opret Dokcerfile og Python-applikation

  • Opret en mappe med 2 filer (Dockerfile og main.py fil) i den

Trin 2: Udvikl Python-kode

  • Rediger main.py med nedenstående kode, ellers kan du prøve at udvikle din egen python-kode.
Python
#!/usr/bin/env python3 print('Docker and GFG rock!')>

Trin 3: Udvikl en Dockerfile

  • Rediger Dockerfile med nedenstående instruktioner til udvikling af Dockerfile:
FROM python:latest COPY main.py / CMD [ 'python', './main.py' ]>

Trin 4: Opret et Docker-billede

  • Når du har oprettet og redigeret main.py-filen og Dockerfilen, skal du oprette dit billede indeholdende dit program ved at køre følgende kommando:
$ sudo docker build -t python-test .>
  • Muligheden '-t' gør det muligt at definere navnet på dit billede. 'python-test' er det navn, vi har valgt til billedet.

Trin 5: Kør Docker Container

  • Når billedet er oprettet, er din kode klar til at blive lanceret.
$ sudo docker run python-test>

For at vide mere om denne containerisering af din ansøgning, se denne – Artikel

Eksempeleksempel til at skubbe et billede til Docker Hub

Følgende trin guider til at skubbe et billede til Dockerhub'en:

Trin 1: Opret en konto på Docker Hub eller brug en eksisterende, hvis du allerede har en.

Trin 2: Klik på knappen Opret lager, indtast navnet på filen, og klik på Opret.

Trin 3: Nu vil mærke vores billede og skubbe det til Docker Hub-depotet, som vi lige har oprettet.

  • Kør nu kommandoen nedenfor for at vise docker-billeder:
$ docker images>
  • Ovenstående vil give os dette resultat
REPOSITORY TAG IMAGE_ID CREATED SIZE afrozchakure/python-test latest c7857f97ebbd 2 hours ago 933MB>
  • Billed-id bruges til at tagge billedet. Syntaksen til at tagge billedet er:
docker tag /python-test:latest $ docker tag c7857f97ebbd afrozchakure/python-test:latest>

Trin 4: Skub billede til Docker Hub-lageret

$ docker push afrozchakure/python-test>

For at vide mere om udgivelse af billederne til dockerhub, se dette – Artikel

Hent og kør billedet fra Docker Hub

1. For at fjerne alle versioner af et bestemt billede fra vores lokale system, bruger vi billed-id'et til det.

$ docker rmi -f af939ee31fdc>

2. Kør nu billedet, det vil hente billedet fra docker-hubben, hvis det ikke findes på din lokale maskine.

$ docker run afrozchakure/python-test>

Fordele ved Docker

Følgende er nogle af fordelene ved Docker:

  • Portabilitet: Docker-faciliteter med skabelse af lette bærbare containere, der ikke kan være i stand på nogen maskine uanset de underliggende operativsystemer.
  • Isolation: Docker through-containere giver et højt niveau af isolation, der gør det muligt for applikationerne at køre uafhængigt af hinanden og løser de problemer, som en container ikke påvirker den anden.
  • Reproducerbarhed: Med Docker-udviklere kan nemt pakke deres applikationer og deres afhængigheder ind i genbrugelige billeder. Det giver mulighed for konsistente og reproducerbare builds på tværs af udviklings-, test- og produktionsmiljøer.
  • DevOps-integration : Det fremmer samarbejdet og automatiseringen på tværs af softwareudviklingens livscyklus ved at håndtere de stigende arbejdsbyrder.

Alternativer til Docker

Følgende er alternativerne til Docker:

  • Afdæmpet : Tilbyder en Docker-kompatibel containermotor med fokus på sikkerhed og kompatibilitet, ideel til miljøer, hvor Docker ikke er foretrukket eller tilgængelig.
  • rkt: En letvægts container runtime udviklet af CoreOS, designet til enkelhed, sikkerhed og sammensætning, og tilbyder et alternativ til Dockers container runtime.
  • LXC (Linux-beholdere): Giver virtualisering på operativsystemniveau til at køre flere isolerede Linux-systemer (containere) på en enkelt vært, hvilket tilbyder et letvægtsalternativ til Docker til visse anvendelsestilfælde.
  • containerd: En industristandard kernecontainer-runtime udviklet af Docker, Inc., der tilbyder en minimal og stabil platform til at bygge containeriserede applikationer, ofte brugt som et lavere niveau-alternativ til Docker til mere avancerede container-orkestreringssystemer som Kubernetes.

Docker sikkerhed

Følgende er nogle af indsigterne om havnearbejdersikkerhed:

  • Isolation : Docker-containere giver den stærke isolation, der sikrer, at applikationerne og behandler, at de kører.
  • Uforanderlig infrastruktur : Det fremmer brugen af ​​uforanderlig infrastruktur, hvor containere bygges ud fra de uforanderlige billeder, der er versionsstyret.
  • Ressourcebegrænsninger: Det giver dig mulighed for at definere ressourcebegrænsningerne for containere, såsom CPU- og hukommelsesgrænser.
  • Sikkerhedsscanning: Det giver de indbyggede sikkerhedsscanningsværktøjer, der giver dig mulighed for at scanne containerbillederne for kendte sårbarheder og malware før implementering.

Konklusion

Så du har lært om det grundlæggende i Docker, forskellen mellem virtuelle maskiner og Docker-containere langs nogle almindelige terminologier i Docker. Vi gennemgik også installationen af ​​Docker på vores systemer. Vi oprettede en applikation ved hjælp af Docker og skubbede vores billede til Docker Hub. Til sidst lærte vi, hvordan vi kunne fjerne et bestemt billede fra vores lokale system og senere trække billedet fra Docker Hub, hvis det ikke findes lokalt.

Docker – ofte stillede spørgsmål

Hvad er Docker Hub kort fortalt?

Docker Hub er et offentligt register, hvor brugere/udviklere kan gemme og dele systembilleder oprettet af dem og gøre dem til nemt at få adgang til og genbruge billeder for andre softwareudviklere.

splitte strenge c++

Hvad er nødvendigt for at bruge Docker Hub?

For at bruge Docker Hub skal brugeren have en konto på Docker Hub-platformen. Hvis du ikke har en konto på Docker Hub, kan du oprette en ved at synge op. Når du har en konto på Docker, kan du udføre handlinger som push og pull billeder til og fra Docker Hub.

Hvad er Docker-logs?

Docker-dæmon og Docker-containere vil generere docker-logfilerne i form af tekstbeskeder, som vil hjælpe dig med yderligere at fejlfinde problemer, overvåge ydeevnen af ​​dine applikationer og indsamle oplysninger om tilstanden af ​​dit Docker-miljø.

Hvad er Docker Build?

Docker build er en kommando, som bruges til at bygge docker-billedet ved at bruge Dockerfilen.

Hvad er Docker Ubuntu?

Docker Ubuntu er det udtryk, der bruges til at bruge Docker-tjenesten med Ubuntu-baserede operativsystemer. At køre Docker er bedst egnet til den populære Linux-distribution Ubuntu.