Nyheter, Prylar, Android, Mobiler, Appnedladdningar, Android

40 Viktiga Docker-kommandon för programvaruutvecklare

Docker har tagit världen med storm sedan starten 2013. Om du är en erfaren programmerare som skapar innovation med hjälp av moderna stackar, är chansen stor att du har arbetat med eller åtminstone hört talas om docker. Oroa dig inte om du är nybörjare och kämpar för att förstå Docker.

Vi har förberett den här guiden för att introducera docker för nybörjare och beskrivit de 40 mest användbara kommandona. Även om docker inte bara handlar om kommandon och gränssnitt, kommer att behärska de grundläggande kommandona hjälpa dig att visualisera hur det fungerar nästan utan ansträngning.

Docker Fundamentals


Docker började som en virtualiseringsleverantör på OS-nivå för sex år sedan, vilket gjorde det möjligt för utvecklare att distribuera sina produkter i containrar. Du kan tänka på behållare som mini-virtuella maskiner.

Innehållsförteckning

Den tillhandahåller funktioner som liknar Linux VMware-verktyg men kräver mycket låga CPU-resurser. Som ett resultat kan företag distribuera tusentals produkter på en enda plattform.

Docker uppnår denna låga resursförbrukning genom sin design. Det ger mindre isolering än fristående VMware-gästmaskiner och tar bort många oönskade funktioner som inte krävs av applikationer som körs på servrar.

Så att välja en från Docker och fullfjädrade hypervisorer som VMware beror enbart på projektkraven.

En annan praktisk funktion hos docker är att den ger exakta miljöer för dina produkter. Anta att du bygger en mobilapp och vill dela projektet med medarbetare.

Vanligtvis behöver de ladda ner de exakta biblioteken och ramverken med samma version som din app kräver. Det leder till olika konfigurationsproblem och minskar utvecklingsinsatserna avsevärt.

Resurslänk: 20 användbara Docker-volymkommandoexempel för moderna utvecklare

Eftersom docker skapar en bild av produktmiljön kan alla dina medarbetare ladda ner och använda den här bilden oavsett deras systemkonfiguration. Docker hämtar och bygger miljön helt själv. Du kommer att lära dig det mesta via våra exempel.

Förstå Dockerfile


I Docker är Dockerfilen den komponent som låter oss definiera miljön för ett verktyg. Det är en textfil som innehåller instruktioner skrivna i ett format som docker runtime kan förstå. Att skapa och hantera Dockerfiler är enkelt. Så vi lämnar den syntaktiska studien av Dockerfiles för en annan dag.

I praktiken kommer du att använda Dockerfilen för att definiera de paket som används av din applikation, hämta och bygga dem. När du delar denna Dockerfil med medarbetare kan de enkelt ställa in miljön genom att använda Docker för att bygga den här bilden.

Förhoppningsvis kommer denna enkla men väsentliga kunskap att räcka för att hjälpa dig förstå de kommandon vi diskuterar idag.

Användbara Docker-kommandon att bemästra


Docker har växt enormt sedan dess tidiga dagar. Idag erbjuder det flera tjänster som sträcker sig över olika virtualiseringsbehov. Så det finns en uppsjö av kommandon tillgängliga för docker cli. Våra redaktörer har valt ut de mest använda kommandona eftersom de hjälper dig att förstå kärnkoncepten bättre.

Grundläggande Docker-kommandon för nybörjare


Vi diskuterar dockers grundläggande kommandon i följande avsnitt. De hjälper dig att snurra upp dina containrar och ge välbehövlig insikt om docker.

1. Skapa en behållare med bilder från Docker Hub


De Docker Hub är det officiella Docker-förrådet för Docker-bilder. Den innehåller tusentals förbyggda bilder skapade av utvecklare och företag med öppen källkod. Du kan enkelt snurra upp en fungerande docker-container med hjälp av en bild från detta arkiv.

$ docker create -it ubuntu:xenial bash

Ovanstående kommando hämtar Ubuntu Xenial-bilden från Docker Hub och skapar en behållare med den här bilden. Flaggan -it säger åt hamnarbetaren att lägga till den integrerade terminalen till denna behållare. Dessutom säger bash-delen till docker att köra bash-kommandot.

2. Lista Docker-containrar


När du har skapat den vill du kontrollera om behållaren har skapats eller inte. Kommandot ps säger åt docker att lista de aktuella behållarna.

$ docker ps

Chansen är stor att det här kommandot inte visar några körande behållare. Det händer för att du inte har startat din dockercontainer än. Du kan dock använda -a flagga för att tala om för hamnarbetaren att lista alla containrar.

$ docker ps -a

Detta kommando bör visa behållaren du skapade i föregående kommando.

3. Starta din container


För att använda dina containrar i docker måste du starta dem först. Docker start-kommandot låter dig göra detta snabbt, som visas i nästa exempel.

$ docker start CONTAINER_ID

Här, CONTAINER_ID är id:t för din behållare. Du får detta när du kör kommandot docker ps -a. Kopiera det därifrån och använd det för det här exemplet. Det kommer att starta din behållare inom några sekunder.

4. Ansluta till din behållare


När du har startat framgångsrikt måste du ansluta till den här behållaren för att använda den. Docker attach-kommandot är här för detta ändamål. Nästa kommando visar hur du ansluter till behållaren du skapade tidigare.

$ docker attach CONTAINER_ID

Detta kommer att resultera i en förändring i din prompt. Och du är nu inne i en Ubuntu Xenial-baserad behållare. Det du gör i den här behållaren kommer att förbli inuti den. Du kan verifiera behållaren genom att köra cat /etc/issue.

5. Avsluta behållaren


Du kan enkelt avsluta en aktiv container med kommandot docker stop. Det är ett av de mest användbara docker-kommandona för nybörjare eftersom det tillåter en enkel utgång från en löpande container. Nästa kommando visar hur detta fungerar.

$ docker stop CONTAINER_ID

Du måste köra detta från en annan terminal eftersom den tidigare terminalen körde behållaren och inte har docker inuti den. En annan enkel lösning är att helt enkelt avsluta behållaren med Ctrl + D eller skriva exit inuti behållaren.

6. Ta bort en behållare


Eftersom behållare är som små bitar av virtuella maskiner kan du enkelt ta bort dem utan att ta konsekvenserna av värddatorn. Använd följande kommando för att ta bort behållaren du skapade tidigare.

$ docker rm CONTAINER_ID

Det kommer att radera behållaren direkt. Men alla dina filer och konfigurationer i den här behållaren kommer också att raderas. Så se till att flytta dem någon annanstans om du behöver dem inom en snar framtid.

7. Döda en container


Docker tillåter också användare att döda en löpande container. Skillnaden mellan att stoppa en container och döda en är ganska subtil, åtminstone i Docker. När du använder docker stop, avslutar det först processerna som körs inuti behållaren och avslutar sedan behållaren.

$ docker kill CONTAINER_ID

Docker kill-kommandot dödar dock hela containerprocessen som körs i värddatorn. Detta kan leda till oönskad felkonfiguration eller korrumpera behållarprocesserna. Så var försiktig när du använder sådana docker-kommandon för Ubuntu.

8. Ta loss från containrar


Anta att du har startat och fäst dig vid en container. Nu vill du lämna den här behållaren igång men vill använda din terminalsession. Eftersom docker-kommandona stoppa och döda avsluta behållaren, kan du inte använda dem för ditt ändamål.

Ctrl+P Ctrl+Q

Om du håller ner tangentkombinationen ovan inuti en löpande behållare kommer du att lossna från den behållaren. Jag håller till exempel helt enkelt in Ctrl och tryck P och F en efter en.

9. Kopiera innehåll mellan behållare och filsystemet


Ofta kanske du vill kopiera konfigurationsfilerna för din nuvarande produkt från behållaren och till filsystemet eller till och med några andra behållare. Docker cp-kommandot låter dig göra detta. Det fungerar som Unix cp -a-kommandot och kopierar innehåll rekursivt.

$ docker cp CONTAINER_ID:/test_file test_file

Detta kommando kommer att kopiera test_fil från behållaren med CONTAINER_ID till värddatorn. Nästa visar oss hur man kopierar ett dokument från värden till en behållare.

$ docker cp test_file CONTAINER_ID:/test_file

10. Köra kommandon inuti behållare


Även om du kan köra kommandon direkt från en pågående behållare, kanske du inte vill bifoga behållare hela tiden, särskilt om du har hundratals behållare. Eftersom detta är ett vanligt scenario ger docker-runtime ett robust kommando för att köra containerspecifika kommandon från administratörens terminalinstans.

$ docker exec CONTAINER_ID command

Detta gör att du kan köra kommandot inuti CONTAINER_ID behållare.

11. Lista alla Docker-bilder


Docker-bilder är byggstenarna i containrar. Som du bör komma ihåg skapas behållare med en bild som bas. Det är normalt för utvecklare att ha flera dockningsbilder över sina system. Nästa kommando visar oss hur du listar alla bilder på din maskin.

$ docker images

Genom att helt enkelt anropa det här kommandot visas alla docker-bilder på toppnivå tillsammans med deras storlek, taggar och arkiv. De -q alternativet kan endast användas för att hämta IMAGE_ID.

12. Ta bort Docker-bilder


Ibland kanske du vill ta bort en eller flera dockningsbilder som inte längre behövs. Nästa kommando visar hur du gör detta.

$ docker rmi <IMAGE_ID>

Men om bilden är taggad av flera repos, måste du ta bort den på följande sätt.

$ docker rmi REPOSITORY:TAG

Du kan hitta denna information när du kör kommandot docker-avbildningar.

Produktiva dockningskommandon för mellanliggande utvecklare


Om du redan har förstått konceptet med dockare och containrar, kanske du vill titta på några avancerade funktioner. Vi diskuterar olika användbara docker-kommandon avsedda att öka utvecklarnas produktivitet i följande avsnitt.

13. Lägga till beständiga volymer för behållare


Så när vi tar bort en behållare försvinner all data som är associerad med den. Docker tillåter utvecklare att skapa “” som ger beständig lagring för dessa data. Volymer är helt enkelt en mekanism som binder din behållare till ett fördefinierat utrymme på ditt filsystem.

$ docker create -it -v $(pwd):/var/www ubuntu:xenial bash

Om du kör kommandot ovan kommer din nuvarande arbetskatalog att bindas till /var/www platsen för din container. Nu kan du ändra filer i din nuvarande katalog, och ändringarna kommer att återspeglas i docker.

14. Skapa och köra containrar med Docker Run


Hittills har vi först skapat våra hamnarcontainrar och sedan startat det. Docker tillåter oss dock att göra båda dessa med bara ett enda kommando. Kolla in exemplet nedan för att se hur detta fungerar.

$ docker run -it -d ubuntu:xenial bash

Resurslänk: Hur man installerar och använder Docker i ditt Linux-system

När du kör det här kommandot hämtar det Xenial-bilden, skapar behållaren och startar den med bash. Du kommer dock inte att se effekten direkt i din terminal.

Detta beror på att vi har instruerat hamnarbetaren att köra den här behållaren i bakgrunden med hjälp av -d flagga. Om du eliminerar detta kommer du till behållaren så snart den har skapats.

15. Skapa en namngiven behållare


De -namn alternativet kan användas för att skapa behållare som bär specifika namn. Du kan använda dem som ersättning för CONTAINER_ID för de flesta dockningskommandon. Nästa kommando visar detta i aktion.

$ docker create --name TEST nginx

Detta kommando kommer att dra Nginx-bilden från Docker Hub och skapa behållaren som kallas TESTA i detta fall. Du kan nu starta den och bifoga din session för att använda behållaren. Det fungerar på samma sätt med kommandot docker run.

16. Exponera portar för containrar


Du kan kommunicera med dina behållare direkt från värden utan att använda docker-runtime alls. Detta fungerar genom att använda något slags nätverksschema definierat av administratören. Att exponera vissa portar för containern är en sådan bred teknik.

$ docker run --name NEW nginx -p 8080:80

Kommandot ovan skapar en behållare med namnet NY och binder dess port 80 till hamnen 8080 av värdsystemet. Så du kommer nu att kunna skicka förfrågningar/svar till din behållare med den här porten.

17. Leta efter ändringar i en container


Ofta kan minsta felkonfiguration leda till oönskade problem och ta timmar att felsöka. Docker diff-kommandot är praktiskt i många sådana fall. Du kan använda den för att inspektera alla ändringar i filsystemet för din behållare.

$ docker diff CONTAINER_ID

Så om du med säkerhet vet att en viss behållare är helt frisk, kan du använda det här kommandot då och då för att se ändringarna i denna behållares filsystem.

18. Skapa en ny bild från modifierade behållare


Docker tillåter utvecklare att skapa en helt ny bild baserat på ändringarna av en redan befintlig behållare. Detta kommer att vara praktiskt när du vill skapa flera behållare för olika faser av din applikation.

$ docker commit CONTAINER_ID REPOSITORY:TAG

Kommandot ovan skapar en ny bild med hjälp av CONTAINER_ID behållare.

19. Övervakningsserver för Docker-containrar


Kommandot docker event låter utvecklare övervaka servrar för realtidsinformation om behållare, bilder, plugins etc. Du kan prova detta i ditt system med hjälp av två kommandoradsskal.

$ docker events

Ange kommandot ovan i det första skalet. Skapa nu en dockercontainer i ett annat skal. Kör några docker-kommandon inuti den behållaren, så får du realtidsmeddelanden i den första terminalen.

20. Inspektera bildhistorik


Som diskuterats tidigare är bilderna byggstenarna för hamnarcontainrar. Så du kan enkelt visa bildhistorik för att upptäcka plötsliga problem i en behållare. Det är enkelt att använda det här kommandot.

$ docker history IMAGE_ID

Få helt enkelt bild-id:t för behållaren med docker ps och använd det som visas ovan. Det kommer att visa hur den aktuella bilden skapas.

21. Laddar Docker-bilder från Tars


En annan stor egenskap hos docker är möjligheten att ladda bilder från tar. Det tillåter också användare att ladda bilder från standardingången. Syntaxen för load-kommandot visas nedan.

$ docker load < IMAGE.tar.gz

Du kan också använda följande kommando.

$ docker load --input IMAGE.tar

Lista nu dina docker-bilder för att verifiera effekterna av dessa kommandon.

Resurslänk: 50 Frequently Asked Docker-intervjufrågor och svar

22. Visa systemomfattande information om Docker


Genom att se den systemomfattande informationen om dockerns körtid kan du övervaka dina containrar. Dessutom ger den viktig information som kan vara till hjälp för felsökare på grund av dess avslöjande karaktär. Använd kommandot nedan för att visa detta i ditt värdsystem.

$ docker info

Även om det verkar enkelt, kommer detta kommando att tillhandahålla en mängd information om både värddatorn och dockningsbehållare.

23. Byta namn på Docker-containrar


Ett av de mest användbara dockningskommandona för att starta utvecklare är kommandot docker rename. Det är ett enkelt kommando som bara byter namn på behållaren men som har stor betydelse för nybörjare.

$ docker rename CONTAINER NEW_NAME

Du kan använda antingen CONTAINER_ID eller parametern Namn för att representera din behållare. De NEW_NAME fältet är för det nya behållarnamnet. Du kan få både namn och id för en container med kommandot docker ps -a.

24. Starta om Docker Containers


Du kommer ofta att behöva ta itu med behållare som antingen är hängda eller har nya problem. En av många anledningar till detta kan vara extra resursförbrukning. Att starta om behållare bör vara det första du bör göra i sådana fall, som med datorer.

$ docker restart CONTAINER[S]

Som standard kommer kommandot ovan att starta om din behållare efter 10 sekunder. Du kan dock ange detta värde genom att använda -t flagga. Värden måste vara i heltal.

Docker-kommandon för nätverk


Det är viktigt att ha problemfri kommunikation mellan dina containrar. Tack och lov kommer Docker-nätverkskommandon att göra det enkelt för dig. Vi har bara diskuterat de grundläggande nätverkskommandona i följande avsnitt.

25. Lista alla nätverk


Nätverksverktyget är ett av de bästa verktygen i docker cli. Du kan använda den för att lista alla nätverk som är tillgängliga för din docker-demon på följande sätt.

$ docker network ls

Det kommer att skriva ut alla nätverk som dina behållare kan ansluta.

26. Anslut till nätverk


Du kan snabbt ansluta en eller flera körande dockningsbehållare till ett nätverk med flera värdar. Nästa kommando visar detta.

$ docker network connect NET CONTAINER_ID

NET representerar nätverket du vill ansluta till, och CONTAINER_ID representerar behållaren. Du kan också använda containernamnet istället för det.

27. Koppla från nätverk


Att koppla bort dina nätverk från ett nätverk är också lika enkelt som att ansluta dem. Kolla in exemplet nedan för att ta reda på hur detta fungerar.

$ docker network disconnect NET CONTAINER_ID

När det har körts kommer detta kommando att koppla bort behållaren från NETTO nätverk. Du kan också lägga till -f flagga för att tvinga bort den.

28. Skapa nätverk


Du kan också använda kommandot Docker Network för att skapa personliga nätverk mellan dina containrar. Detta används regelbundet i produktionen. Nästa kommando visar hur man skapar containernätverk.

$ docker network create NET

Det här kommandot kan ta flera ytterligare alternativ för att tillhandahålla förbättrade funktioner, som att ange nätverksparametrar. Du kan hitta mer om dem här.

29. Visa detaljerad information om nätverk


Docker-nätverkskommandot låter utvecklare övervaka sin nätverksinformation i mycket detalj. Det gör felsökning mycket enklare och konfiguration nästan enkel. Nästa kommando visar ett enkelt exempel på detta.

$ docker network inspect NET

Detta kommando kommer att tillhandahålla all slags information tillgänglig för nätverket NETTO. Du kan använda -v flagga för att göra utgången mer läsbar för människor. Dessutom kan du använda -f för att formatera utdata baserat på en mall.

30. Ta bort nätverk


Docker network rm-kommandot kan användas för att ta bort ett eller flera containernätverk mycket snabbt. Kommandot nedan visar detta för dig.

$ docker network rm NET

Du kan också ta bort istället för rm för detta kommando eftersom de är alias.

31. Ta bort alla oanvända nätverk


Docker tillåter administratörer att ta bort alla oanvända nätverk. Det kallas beskärning i hamnarbetaretermer. Kommandot nedan visar hur detta fungerar.

$ docker network prune

Det är ett interaktivt kommando och kommer att be om bekräftelse för varje borttagning. Du kan lägga till -f flagga för att stänga av detta. Detta kommando är säkert eftersom det inte beror på användaren.

Diverse Docker-kommandon


Det finns massor av ytterligare kommandon tillgängliga för docker-demonen. Men vi kan inte bara diskutera dem alla i en sådan enda guide. Så bli inte orolig om du inte hittar några specifika kommandon i vår lista. Här är några ytterligare docker-kommandon för Ubuntu-liknande system.

32. Bygg bilder från Dockerfile


Dockerfilen är det primära byggkonfigurationsverktyget för Docker-behållare. Du kan lär dig hur du skapar dem här. Det här exemplet visar hur du kan bygga en containerbild från en Dockerfil.

$ docker build . -t APP:v1

Detta kommando kommer att skapa bilden med hjälp av Dockerfilen i den aktuella arbetskatalogen. Det kommer att sätta sig APP som reponamn och v1 som taggen. Du måste ange sökvägen om Dockerfilen finns i någon annan katalog.

33. Ta bort alla oanvända resurser


Eftersom värdsystem vanligtvis rymmer hundratals behållare finns det ofta dinglande resurser. Det kan vara improduktivt och kan påverka serverns arbetsbelastning. Du kan använda följande kommando för att ta bort alla sådana resurser.

$ docker system prune

Det kommer att radera alla oanvända behållare, volymer och nätverk. Dessutom kan du lägga till -a flagga för att ta bort alla oanvända behållare och bilder från docker-runtime.

34. Ta bort specifika volymer


Du kan enkelt ta bort specifika volymer som dina containrar inte längre behöver. Det är vanligt under produktionen. Nästa exempel visar att kommandot docker volym kan användas för detta ändamål.

$ docker volume rm VOLUME_NAME

Det kommer att resultera i att den angivna volymen raderas. Du kan passera -f alternativet för att hoppa över bekräftelserna.

35. Söka efter bilder i Docker Hub


Docker cli tillåter också utvecklare att söka efter specificerade bilder i Docker-hubben direkt från terminalen. Du kan använda docker-sökkommandot för detta ändamål.

$ docker search nginx

När den körs kommer den att leta efter den officiella Nginx-bilden i det officiella förvaret. Du kan lägga till flera filter för att begränsa eller specificera din sökning.

36. Ta bort behållare vid utgång


Du kan skapa behållare som kommer att tas bort när ditt jobb är klart och du avslutar det. Det kan vara användbart i ett antal situationer, till exempel för felsökning. Nästa kommando visar detta i aktion.

$ docker run --rm --it xenial /bin/bash

Detta kommando skapar och startar en Xenial-baserad behållare med bash som körs inuti. Du kan göra din personal här, och så fort du avslutar containern kommer docker-motorn att ta bort denna container automatiskt.

37. Få nätverksloggar hos värd


Att ha loggarna för dina containernätverk till hands är extremt användbart. Du kan använda följande kommando för att hämta behållarloggar på värddatorn.

$ journalctl -u docker.service

Du kan hitta de flesta av dina felsökningslösningar genom att inspektera resultatet av detta kommando.

38. Exportera containerfilsystem som Tars


Docker-cli tillhandahåller exportkommandot som kan användas för att exportera en containers filsystem som ett tar-arkiv. Kolla in kommandot nedan för att förstå hur detta fungerar.

$ docker export giant_panda > new.tar

Detta kommando motsvarar nästa kommando.

$ docker export --output="new.tar" giant_panda

39. Visa versionsinformation


Du kan enkelt se versionsinformationen för din docker-klient och servermotsvarigheter i kommandona nedan.

$ docker version

Med nästa kan du också hämta docker-demonversionen tillsammans med bygginformationen.

$ docker -v

40. Visa hjälpinformation


Docker-dokumentationen är helt enkelt inspirerande. Du kan få hjälp med den övergripande demonen helt enkelt genom att använda kommandodockan.

$ docker

För att få ytterligare data om underordnade kommandon, använd följande syntax.

$ docker command[S] --help
$ docker network --help

Så du kan enkelt utöka djupet på cli-dokumentationen.

Avslutande tankar


Docker-kommandon är viktiga för moderna systemunderhållare och utvecklare. Det är svårt att exakt förklara dockers inverkan på moderna applikationsinstallationer. Nästan alla vanliga företag har anpassat docker.

Så högbetalda jobbmöjligheter finns också tillgängliga för CS-studenter över hela världen. Så att lära sig några av dessa kommandon kommer att vara en stor investering för framtida ingenjörer.

Förhoppningsvis kunde vi ge dig den kunskap du sökte. Kommentera dina tankar och låt oss veta om du har fler frågor om Docker.