Beskrivning
"Låt oss containerisera din kod för att skickas över hela världen!" Om du läser ovanstående citat måste du tänka, vad betyder allt detta? Tja, min vän, det här är vad Docker är. Låt mig förklara det med ett exempel.
Say Harish och Lisa är två personer som arbetar med samma projekt men på två olika system (säg windows och mac). Ofta måste de dela samma kod för korrigeringar. Men på grund av missmatchande beroende måste de använda virtuella maskiner/VM:er. VM:er är långsamma och resurskrävande, vilket leder till tunga felsökningsupplevelser. Så vad är lösningen för dem?
Svaret är att de kan packa/containerisera deras kod med alla beroenden och dela dem. När filen väl har tagits emot måste de bygga den från källan. Eftersom allt körs på toppen av applikationslagret kan plattformsoberoende etableras.
Verktyget som används för att utföra ovanstående operation är Hamnarbetare, ett måste för alla utvecklare. Den här artikeln kommer att lära dig allt du behöver för att använda Docker. Här är vad du kan förvänta dig:
Inlärningsmål
1. Ta reda på grunderna i docker, hur det fungerar och dess väsentliga komponenter.
2. Installera den på flera operativsystem.
3. Lär dig alla Docker CLI-kommandon för att komma igång som nybörjare.
3. Använd kunskapen du lärt dig för att köra din första docker-bild.
3. Replikera ett verkligt scenario för att förstå hur man använder det i verkligheten som utvecklare.
4. Tips och tricks för att göra din docker-användning sömlös och felfri.
Denna artikel publicerades som en del av Data Science Blogathon.
- 4.2 Projektets struktur
4.3 Bygga webbapp (ingångspunkt och valfritt)
4.4 Skriva Docker-fil
4.5 Bygga anpassad Docker-bild
4.6 Köra Custom Docker Container
4.7 Verifiering - Slutsats
- Extra resurser
Vad menar du med Docker?
Docker är en öppen källkodsplattform som hjälper till att bygga, köra och dela applikationer. Den är lätt, snabb och effektiv med lokala utvecklingsfunktioner, vilket ger den en fördel gentemot konkurrenterna.
Det gör utvecklingen mer hanterbar, förutsägbar och effektiv genom att eliminera repetitiva utvecklingsuppgifter som att installera beroenden, exponera portar, ställa in miljövariabler och mycket mer.
I sin kärna består Docker av tre komponenter:
- Docker-fil – Skriftliga instruktioner för att skapa en ritning / Docker-bild.
- Bild – Oföränderlig ögonblicksbild av miljön för att köra Docker Containers.
- Behållare – Pågående process
Låt oss se hur det fungerar.
Du börjar med att skriva a docker-fil som innehåller kodade instruktioner för att återuppbygga miljön. Dessa kallas dockerbilder.
Nu kan dessa bilder laddas upp/ sköt till de offentliga/privata registren, och bilddetaljer kan delas.
Slutligen kan vem som helst dra dessa bilder för att starta instanser, även kända som behållare. Det intressanta är att man kan köra flera containrar över flera maskiner.
Här är en bild för att förstå processen bättre:
Uppdelning av Docker-komponenter
Bortsett från detta har Docker ytterligare två komponenter, Docker CLI och Docker skrivbord. Se det som ett sätt att interagera med behållare mer detaljerat.
Docker CLI är ett kommandoradsverktyg för utvecklare att bygga, springaoch stoppa bilder använder docker daemon (Dockers ursprungliga begäran och API-hanterare för idéer, nätverk, behållare/processer och volymer).
Å andra sidan är Docker desktop ett GUI som bättre visualiserar alla behållare (processer) för att bättre föreställa sig vad som händer under huven. Det ger dig tillgång till docker hub och docker-swarm CLI-kommandon och låter dig springa, pausa or stoppa behållare – Bättre för nybörjare.
Hur installerar jag Docker på din PC?
Det enklaste sättet att komma igång är att installera docker desktop, som installerar CLI och daemon i backend, vilket är nödvändigt för att köra docker-kommandon. Så här gör du.
Notera: Skapa ett konto för en smidig process. Det är gratis!
För Windows
- Gå över till Docker Desktop For Windows-webbplatsen.
- Klicka på Docker för Windows knappen och ladda ner installationsfilen.
- Acceptera villkoren. Följ resten av installationsguiden och du är klar.
- Öppna skrivbordsapplikationen och gå igenom handledningen. De rekommenderas varmt!
Observera att du måste uppfylla systemkraven som anges på nedladdningssidan.
för Mac
- Gå över till Docker Desktop For Mac-webbplatsen.
- Beroende på chiptyp, "Intel" eller "Apple Silicon", klicka på nedladdningsknappen.
- Acceptera villkoren. Följ resten av installationsguiden och du är klar.
- Öppna skrivbordsapplikationen och gå igenom handledningen. De rekommenderas varmt!
För Linux
Tyvärr kan processen vara enklare för Linux, men det är den inte. Den använder en KVM-metod (Kernel Virtual Machine) för att installera Docker. Detta laddar en anpassad docker-VM (desktop-Linux), vilket leder till att bilder och behållare som distribueras på Docker Desktop för Linux inte är tillgängliga.
Ändå, om du fortfarande vill installera Docker- Desktop för din maskin, följ handledningsguiden på Installera på Linux | Docker sida.
Här är en ögonblicksbild av hur skrivbordet kommer att se ut:
Efter att ha installerat Docker är det dags att använda det; Nu går vi!
Förstå grunderna för att använda Docker
Innan du använder Docker måste några saker fixas. Vänligen gör det för att undvika fel under arbetsflödet.
Förutsättningar (WSL & Docker Daemon)
För Windows-användare, Windows Subsystem For Linux (WSL) krävs för att följa handledningen. För att installera WSL, öppna din terminal med administratörsbehörighet och kör följande kommando:
kommer installera
Detta installerar den senaste ubuntu-versionen av Linux.
Därefter, för att använda Docker Daemon, öppna docker-skrivbordet och vänta tills valikonen blir grön. Minimera nu fönstret och följ med :)
Dra bilder
Den primära användningen av Docker är att replikera miljön med hjälp av bilder och behållare. Så låt oss börja med att dra några bilder (det här fallet, Nginx).
För att dra behållare kan du använda följande:
hamnare pull .
Detta hämtar den senaste behållaren med bildnamnet från docker-hubben.
Nu när vi drar Nginx-bilden kommer vår kod att vara:
docker pull nginx
Vi måste ange versionen som en flagga för att lägga till en anpassad version. Till exempel, detta drar Nginx 1.23-versionen:
Det finns flera flaggor, var och en motsvarar en specifik bild. Du kan komma åt andra versionstaggar här..
För att komma åt taggar för olika behållare kan du gå till Docker Hub webbplats, välj önskad bild och titta under Taggar.
Här är en ögonblicksbild:
För att kontrollera om allt fungerade bra kan du köra följande:
dockerbilder
Utgången kommer att se ut så här:
Detta ger alla bilder listade på din lokala lagring (Japp, den lagrar dina bilder lokalt och kallas en behållare!)
Låt oss sedan köra behållaren.
Kör container
För att köra bilden (behållare), skriv in följande kommando.
docker run -d -p 8080:80 --name container-name nginx
Här är några saker att veta när du kör:
- docker run :- standardkommando för att köra containrar & docker native
- -d:- Den här flaggan säger åt den att köra behållaren i backend, frikopplad från en terminal (En livräddare!)
- -p:- Medel på vilket Docker kan exponera porten för användning för containern. Som du kanske förstår är 8080 standard för den lokala värden vid port 80.
- –name:- Den här taggen låter användare ge ett anpassat namn till sina behållare för enkel navigering. Se till att du lägger till något som är relaterat till projektet, som en nginx-behållare.
- nginx:- tjänst du vill köra inuti din behållare.
För att kontrollera om allt gick enligt plan, kör följande:
docker ps
Detta kommer att lista alla pågående behållare – förgrund och bakgrund. Du kan också kontrollera med Docker Desktop genom att kontrollera STATUS som körs.
OR
docker ps -a
Detta visar alla behållare som finns på det lokala systemet, trots deras status.
Produktion:
Stoppa och starta containrar
Ibland behöver du starta eller stoppa behållarna till ditt förfogande. Du kan aktivera funktionen med följande:
docker stop docker start
Till exempel, för att stoppa nginx-behållaren använder du följande:
docker stop nginx-container
Du kan verifiera utförandet genom att kontrollera lämnat status i Docker Desktop.
Tips: Se till att stoppa behållaren permanent, annars kommer den att fortsätta använda din resurs i bakgrunden vilket leder till att din maskin saktar ner själv
För att starta om behållaren, använd följande:
docker starta nginx-container
För att verifiera igen, kontrollera efter Springa status bredvid containernamnet i Docker Desktop.
Dessa är alla de grundläggande CLI-kommandon som behövs för att börja använda Docker. Låt oss nu titta på den andra sidan av applikationsanvändningen – Containerizing.
Bygger en anpassad bild
Kom ihåg att hela poängen med Docker är att behålla din kod för att skicka den över hela världen. Låt oss nu titta på hur du kan bygga din bild och köra den senare.
Notera: Det här avsnittet förutsätter att du är bra med användning av kommandoradsgränssnitt och har VS-kod installerad.
Hela poängen här är också att visa dig hur du använder Docker genom att replikera ett verkligt scenario. Så den här handledningen använder en grundläggande HTML-mall för en startpunkt för en webbapp.
Definiera scenario
Du (Harish) arbetar med en webbapp. Plötsligt finns det ett fel och du kan inte fixa det. Du kontaktar din utvecklarvän (Lisa), som säger att han kan hjälpa dig.
Så du delar repan. Men det faktum att hon använder macOS och en annan version av nginx (för webbhotell), hon möter beroendeproblem.
Hon känner till Docker och ber dig skapa en anpassad bild och dela den med honom. Låt oss se hur du kommer att hantera den givna uppgiften.
Structure
Så här ser en typisk process för att bygga din bild ut i Docker-termer:
- Du börjar med att skapa en docker-fil som innehåller alla instruktioner för att bygga miljön från grunden.
- Du bygger & pushar bilden med hjälp av CLI-kommandon och lägg till ett namn/tagg till bilden för enkel sökbarhet.
- Nu delar du bildtaggen, och din vän kan dra bilden och snurra upp en behållare i sitt system.
Låt oss se detta i aktion!
Bygga webbappen - Valfritt
I själva fallet kanske du redan har din app/projekt, men för handledningens skull, låt oss skapa en.
Öppna din vs. kod, skapa en ny fil som heter index.html och klistra in nedanstående kod:
Hej, Lisa/
Det här är den anpassade NGINX Docker-behållaren du begärde. Hoppas du löser problemet snart :p
Som nämnts ovan kommer denna grundläggande mall att fungera som vårt projekt.
Nästa steg är att skriva själva docker-filen.
Skriver Docker-fil
Detta är en avgörande process. Det är värt att notera att demonen behandlar varje påstående i en fil i termer av steg. Så för att se till att allt går smidigt, överväg att skriva dem i ordning. Du kan hitta alla detaljer här..
Börja med att skapa en ny fil som kallas docker-filen. Skriv följande instruktioner inuti den:
FRÅN nginx:senaste KOPIAN ./index.html /usr/share/nginx/html/index.html
Låt oss nu titta på koden.
På rad 1 FRÅN kommandot hämtar den senaste versionen av nginx-bilden från navet och fungerar som en bas för att bygga den anpassade bilden. Se det som att köra en anpassad nginx-version överst i den senaste versionen för bättre reproducerbarhet vid fallback.
Som standard kommer nginx själv med en index.html-fil, så det är viktigt att skriva över den med vår webbapp. Detsamma görs i rad 2 med hjälp av KOPIA kommando, som tar fil att kopiera och kopierar sökvägen. Så läs kommandona som:
COPY fil sökväg/till/kopiera
Det är allt du behöver göra. Låt oss nu bygga bilden.
Building Docker Image (anpassad)
För att bygga docker-bilden kommer vi att använda dess build-kommando:
docker build -t bildnamn .
Här -t hänvisar till taggen och bildnamn hänvisar till alla namn du definierar men se till att det är meningsfullt. Även ".” i slutet är nödvändigt och inte ett misstag.
Så för att bygga den anpassade behållaren du definierade ändras koden till:
docker build -t custom-ngnix-image .
Byggprocessen kan ta några minuter men ha tålamod. När det är framgångsrikt kommer du att se nedan som utdata.
För att verifiera om allt fungerade bra, kontrollera med skrivbordsappen eller använd:
dockningsbild ls
Denna lista visar alla bilder som är tillgängliga på din maskin.
Produktion:
Så du gjorde bilden med en anpassad-ngnix-image-tagg och delade den med en vän. Låt oss nu se hur hon kan återuppbygga miljön med densamma.
Körande behållare (anpassad)
För att köra behållaren öppnar hon terminalen och klistrar in följande kommando:
docker run -d -p 8080:80 --name custom-container custom-ngnix-image
docker ps
Tja, om ovanstående ser fancy ut. Här är en generisk version:
docker run -d -p 8080:80 --name container-name image-name
Om du ser det ser allt bekant ut för det tidigare diskuterade körkommandot, med två skillnader:
- –namn:- Den här flaggan har det nya behållarnamnet (custom-container). Detta kommer att vara namnet för att skilja denna behållare/process från resten av ditt system.
- image-name:- Observera namnet på den anpassade bilden du definierade när du byggde behållaren. Se till att använda samma namn som i den första kodraden.
Slutligen, för att kontrollera bildtaggen i fall / kontrollera status, kan de köra följande:
docker ps
Återigen kommer detta att lista alla körda behållare, men lägg märke till kolumnen NAMN; den har samma tagg som hon definierade. Det är också värt att veta att trots det angivna namnet tilldelar den ett unikt container-ID till varje process.
Verifiering
Kom ihåg att vi skrev över filen index.html(web app). Det är värt att kontrollera om den webbappen finns på nginx.
För att kontrollera det, besök den lokala värden (varför så?) och kontrollera om den visar en webbapp. I vårt fall bör den visa texten i filen index.html.
Produktion:
Ovanstående metod kan också användas för att vara värd för en fullfjädrad app. Du måste först bygga bilden och öppna porten du definierade för att demonen ska lyssna på.
Notera: Se till att stoppa behållaren efter användning. Ganska viktigt!
Slutsats
Anta att du har kommit så långt; grattis! Du vet mycket mer än dina kamrater och kan börja använda Docker. Här är vad vi har lärt oss idag:
- Varför Docker – Vi började med att se var det blir nödvändigt för utvecklingsverksamheten. Jag hoppas att Harish och Lisa nu kan fixa sin app på nolltid.
- Fundamentals – Vi lärde oss om Docker, grunderna för hur det fungerar och förstår terminologier som fil, bild och behållare. Bortsett från detta tittade vi också på CLI och Desktop.
- Installation – Vi lärde oss olika sätt att installera det på flera plattformar.
- Körande containrar – Vi körde containrar/processer med förbyggda bilder och såg många CLI-kommandon i processen. Kom ihåg användningen av taggar och vad de gör.
- Bygger anpassade behållare – Vi tog vår förståelse till nästa nivå genom att skapa vår bild (anpassad – bild) och titta på hur man kör och verifierar den. Återigen lärde vi oss några fler kommandon, användning och syntax.
Så jag hoppas att du är övertygad om varför det är ett måste verktyg för enh och utvecklingsteam och hur det kan hjälpa din utvecklingsresa.
Om du stöter på några problem med någon av avsnitten eller kommandona får du gärna kontakta mig på mina sociala medier: LinkedIn, Twitter, eller Instagram.
Medierna som visas i den här artikeln ägs inte av Analytics Vidhya och används efter författarens gottfinnande.
Relaterad
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- Platoblockchain. Web3 Metaverse Intelligence. Kunskap förstärkt. Tillgång här.
- Källa: https://www.analyticsvidhya.com/blog/2023/02/getting-started-with-the-basics-of-docker/
- 1
- 7
- a
- Om Oss
- ovan
- tillgång
- Enligt
- Konto
- tvärs
- administration
- Efter
- Stöd
- Alla
- tillåter
- redan
- analytics
- Analys Vidhya
- och
- svara
- någon
- isär
- api
- app
- Ansökan
- tillämpningar
- Ansök
- runt
- Artikeln
- tillgänglig
- undvika
- backend
- bakgrund
- bas
- grundläggande
- Grunderna
- blir
- Nybörjare
- Nybörjare
- nedan
- Bättre
- Bug
- SLUTRESULTAT
- Byggnad
- Knappen
- kallas
- Vid
- Förändringar
- ta
- kontroll
- chip
- koda
- Kolumn
- komma
- konkurrenter
- komponenter
- villkor
- Tänk
- kontakta
- Behållare
- Behållare
- innehåller
- Kärna
- Motsvarande
- kunde
- skapa
- Skapa
- avgörande
- beställnings
- Standard
- definierade
- Dependency
- utplacerade
- desktop
- Trots
- detaljer
- dev
- Utvecklare
- utvecklare
- Utveckling
- skillnader
- olika
- diskretion
- diskuteras
- Visa
- displayer
- skilja på
- Hamnarbetare
- Dockerbehållare
- ladda ner
- under
- varje
- enklaste
- kant
- effektiv
- eliminera
- möjliggöra
- Miljö
- fel
- väsentlig
- Essentials
- etablerade
- Eter (ETH)
- allt
- exempel
- exekvera
- exekvera
- utförande
- förvänta
- Erfarenheter
- Förklara
- Ansikte
- ytorna
- bekant
- SNABB
- Funktioner
- få
- Fil
- hitta
- änden
- Förnamn
- Fast
- fixerad
- flaggorna
- följer
- efter
- Fri
- vän
- från
- full
- funktionalitet
- Fundamentals
- skaffa sig
- få
- Ge
- ges
- ger
- globen
- Go
- Går
- kommer
- god
- Grön
- Marken
- styra
- hantera
- huvud
- hjälpa
- hjälper
- här.
- höggradigt
- innehar
- huva
- hoppas
- värd
- värd
- värd
- Hur ser din drömresa ut
- How To
- html
- HTTPS
- Nav
- IKON
- idéer
- bild
- bilder
- oföränderlig
- in
- index
- installera
- installerad
- installera
- instruktioner
- interagera
- intressant
- Gränssnitt
- fråga
- problem
- IT
- sig
- resa
- Ha kvar
- Vet
- Menande
- kunskap
- känd
- senaste
- lager
- ledande
- Leads
- LÄRA SIG
- lärt
- Nivå
- livet
- lättvikt
- linje
- linux
- Lista
- Noterade
- laster
- lokal
- lokalt
- se
- ser ut som
- såg
- du letar
- UTSEENDE
- Lot
- mac
- Maskinen
- Maskiner
- Mac OS
- gjord
- göra
- GÖR
- meningsfull
- betyder
- Media
- Möt
- nämnts
- metod
- minimera
- minuter
- misstag
- mer
- multipel
- namn
- namn
- nativ
- Navigering
- nödvändigt för
- Behöver
- behövs
- nätverk
- Nya
- Nästa
- nginx
- observera
- ONE
- öppet
- öppen källkod
- drift
- operativsystem
- drift
- Verksamhet
- beställa
- Övriga
- ägd
- del
- Patienten
- PC
- Personer
- utföra
- permanent
- tillstånd
- Planen
- plattform
- Plattformar
- plato
- Platon Data Intelligence
- PlatonData
- snälla du
- Punkt
- portar
- Förutsägbar
- presentera
- pretty
- tidigare
- primär
- process
- processer
- projektet
- publicerade
- dra
- Drar
- Tryck
- nå
- Läsa
- verklig
- verkliga livet
- mottagna
- känner igen
- hänvisar
- ihåg
- repetitiva
- begära
- begärda
- Obligatorisk
- Krav
- resurs
- REST
- Körning
- rinnande
- skull
- Samma
- Vetenskap
- sömlös
- §
- sektioner
- se
- tjänar
- service
- inställning
- inställning
- Dela
- delas
- skall
- show
- visas
- Kisel
- eftersom
- långsam
- saktar
- mjukt
- Snapshot
- So
- lösning
- några
- något
- Alldeles strax
- Källa
- specifik
- Snurra
- starta
- igång
- Starta
- .
- status
- Steg
- Steg
- Fortfarande
- Sluta
- förvaring
- lagrar
- okomplicerad
- Framgångsrikt
- sådana
- syntax
- system
- System
- MÄRKA
- Ta
- tar
- uppgift
- uppgifter
- lag
- berättar
- mall
- terminal
- villkor
- Villkor
- Smakämnen
- Grunderna
- navet
- källan
- deras
- saker
- Tänk
- Genom
- tid
- Tips
- tips och tricks
- till
- i dag
- alltför
- verktyg
- topp
- behandlar
- tricks
- handledning
- typisk
- ubuntu
- under
- förstå
- förståelse
- unika
- Användning
- användning
- användare
- verifiera
- version
- Virtuell
- virtuell maskin
- volymer
- kontra kod
- vänta
- sätt
- webb
- webbhotell
- Webbplats
- Whale
- Vad
- om
- som
- medan
- VEM
- kommer
- fönster
- arbetade
- fungerade bra
- arbetsflöde
- arbetssätt
- fungerar
- värt
- skriva
- skrivning
- skriven
- Din
- zephyrnet