XWiki, a free, open source, self hosted Wiki that has all the features of Confluence at minimal cost
Innehållsförteckning:
- Docker-körkommando
- Kör behållaren i förgrunden
- Kör behållaren i fristående läge
- Ta bort behållaren efter utgången
- Ställ in behållarens namn
- Publishing Container Ports
- Dela data (monteringsvolymer)
- Kör behållaren interaktivt
- Slutsats
Docker är en plattform som låter dig utveckla, testa och distribuera applikationer som bärbara, självförsörjande behållare som kör praktiskt taget var som helst.
docker run
skapar en behållare från en given bild och startar behållaren med ett givet kommando. Det är ett av de första kommandona du bör bli bekant med när du börjar arbeta med Docker., använder vi den officiella Nginx-bilden för att visa olika sätt att köra en Docker-behållare.
Docker-körkommando
docker run
har följande form:
docker run IMAGE
Namnet på bilden från vilken behållaren ska skapas är det enda argument som krävs för
docker run
. Om bilden inte finns i det lokala systemet dras den från registret.
Om inget kommando anges utförs kommandot som anges i Dockerfiles CMD- eller
ENTRYPOINT
instruktioner när du kör behållaren.
Från version 1.13 har Docker CLI omstrukturerats, och alla kommandon har grupperats under objektet de interagerar med.
Eftersom körkommandot interagerar med containrar är det nu en underkommando för
docker container
. Syntaxen för det nya kommandot är som följer:
docker container run IMAGE
Den gamla syntaxen före 1.13 stöds fortfarande. Under huven är
docker run
ett alias för
docker container run
. Användare uppmuntras att använda den nya kommandosyntaxen.
En lista över alla
docker container run
finns på dokumentationssidan för Docker.
Kör behållaren i förgrunden
När inget alternativ tillhandahålls för
docker run
standardprocessen i förgrunden. Detta innebär att standardinmatningen, utgången och felet från rotprocessen är kopplade till terminalsessionen.
docker container run nginx
Utsignalen från nginx-processen visas på din terminal. Eftersom det inte finns några anslutningar till webbservern är terminalen tom.
För att stoppa behållaren avslutar du den igång Nginx-processen genom att trycka på
CTRL+C
Kör behållaren i fristående läge
Starta den i ett fristående läge för att hålla behållaren igång när du lämnar terminalsessionen. Detta liknar att köra en Linux-process i bakgrunden.
Använd alternativet
-d
att starta en fristående behållare:
docker container run -d nginx
050e72d8567a3ec1e66370350b0069ab5219614f9701f63fcf02e8c8689f04fa
Den fristående behållaren stannar när rotprocessen avslutas.
Du kan lista de körande containrarna med
docker container ls
.
För att ansluta din terminal till den fristående behållarrotprocessen använder
docker container attach
kommandot
docker container attach
.
Ta bort behållaren efter utgången
När behållaren går ut, kvarstår dess filsystem som värdssystem.
--rm
berättar för
docker run
att ta bort behållaren när den kommer ut automatiskt:
docker container run --rm nginx
Nginx-bilden är kanske inte det bästa exemplet att rensa upp behållarens filsystem efter att behållaren har slutat. Detta alternativ används vanligtvis på förgrundsbehållare som utför kortsiktiga uppgifter som tester eller databasbackup.
Ställ in behållarens namn
I Docker identifieras varje behållare med dess
UUID
och namn. Som standard, om inte uttryckligen ställts in, genereras behållarens namn automatiskt av Docker-demonet.
Använd alternativet - namn för att tilldela behållaren ett anpassat namn:
docker container run -d --name my_nginx nginx
Behållarens namn måste vara unikt. Om du försöker starta en annan behållare med samma namn får du ett fel som liknar det här:
docker: Error response from daemon: Conflict. The container name "/my_nginx" is already in use by container "9…c". You have to remove (or rename) that container to be able to reuse that name.
Kör
docker container ls -a
att lista alla containrar och se deras namn:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d695c1f5ef4 nginx "nginx -g 'daemon of…" 36 seconds ago Up 35 seconds 80/tcp my_nginx
De meningsfulla namnen är användbara för att referera till behållaren i ett Docker-nätverk eller när du kör docker CLI-kommandon.
Publishing Container Ports
Om inga portar publiceras är processen som körs i behållaren endast tillgänglig från insidan av behållaren.
Att publicera portar betyder att kartlägga containerportar till värdmaskinportarna så att portarna är tillgängliga för tjänster utanför Docker.
För att publicera en port använder du
-p
alternativen enligt följande:
-p host_ip:host_port:container_port/protocol
- Om inget
host_ipanges, är det standard0.0.0.0ingetprotocolanges, är det standard TCP. För att publicera flera portar, använd flera-palternativ.
För att kartlägga TCP-port 80 (nginx) i behållaren till port 8080 i värdens localhost-gränssnitt kör du:
docker container run --name web_server -d -p 8080:80 nginx
Du kan verifiera att porten publiceras genom att öppna
http://localhost:8080
i din webbläsare eller köra följande
curl
kommando på Docker-värden:
curl -I
Utgången ser ut så här:
HTTP/1.1 200 OK Server: nginx/1.17.6 Date: Tue, 26 Nov 2019 22:55:59 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 19 Nov 2019 12:50:08 GMT Connection: keep-alive ETag: "5dd3e500-264" Accept-Ranges: bytes
Dela data (monteringsvolymer)
När en behållare stoppas tas alla data som genereras av behållaren bort. Dockervolymer är det föredragna sättet att göra data kvarstår och dela dem över flera containrar.
För att skapa och hantera volymer använder du
-p
alternativen enligt följande:
-v host_src:container_dest:options
-
host_srckan vara en absolut sökväg till en fil eller katalog på värden eller en namngiven volym.container_destär en absolut sökväg till en fil eller katalog på behållaren.rwkan vararw(läs-skriv) ochro(skrivskyddad)). Om inget alternativ anges är det standard attrw.
För att förklara hur detta fungerar, låt oss skapa en katalog på värden och lägga en
index.html
fil i den:
mkdir public_html
echo "Testing Docker Volumes" > public_html/index.html
Därefter monterar
public_html
katalogen
public_html
i
/usr/share/nginx/html
i behållaren:
docker run --name web_server -d -p 8080:80 -v $(pwd)/public_html:/usr/share/nginx/html nginx
Istället för att ange den absoluta sökvägen till
public_html
, använder vi kommandot
$(pwd)
, som skriver ut den aktuella arbetskatalogen.
Om du skriver
http://localhost:8080
i din webbläsare bör du se innehållet i filen
index.html
. Du kan också använda
curl
:
curl
Kör behållaren interaktivt
När du hanterar de interaktiva processerna som
bash
, använd alternativen
-i
och
-t
för att starta behållaren.
Alternativet-det berättar Docker att hålla standardingången kopplad till terminalen och tilldela en pseudo-tty:
docker container run -it nginx /bin/bash
Behållarens Bash-skal ansluts till terminalen och kommandotolken kommer att ändras:
root@1da70f1937f5:/#
Nu kan du interagera med behållarens skal och köra valfritt kommando i den.
I det här exemplet tillhandahöll vi ett kommando (
/bin/bash
) som ett argument till
docker run
som utfördes i stället för det som anges i Dockerfile.
Slutsats
Docker är standarden för förpackning och distribution av applikationer och en viktig komponent i CI / CD, automatisering och DevOps.
docker container run
för att skapa och köra Docker-containrar.
Echo-kommando i Linux med exempel
Echo-kommandot är ett av de mest grundläggande och ofta använda kommandona i Linux. Argumenten som skickas till eko skrivs ut på standardutgången.
Curl-kommando i Linux med exempel
Curl är ett kommandoradsverktyg för överföring av data från eller till en server som är utformad för att fungera utan användarinteraktion. I den här tutorialen visar vi dig hur du använder curlverktyget genom praktiska exempel och detaljerade förklaringar av de vanligaste lockalternativen.
Linux klipp kommando med exempel
Cut är ett verktyg för kommandorader som gör att du kan klippa delar av rader från specificerade filer eller data i rörledning och skriva ut resultatet till standardutdata. I den här tutorialen kommer vi att visa dig hur du använder Linux-klippkommandot genom praktiska exempel och detaljerade förklaringar av de vanligaste klippalternativen.







