Android

Hur du ansluter till en dockningscontainer

Как связать ажурный берет с цветком крючком на весну и осень, вязание крючком для начинающих

Как связать ажурный берет с цветком крючком на весну и осень, вязание крючком для начинающих

Innehållsförteckning:

Anonim

Det är bra att ansluta till en löpande Docker-behållare när du vill se vad som händer inne i behållaren. Om Docker-behållaren inte fungerar som förväntat kan du fästa till behållaren eller få ett skal till behållaren och köra kommandon som ps eller top . Du kan också ange behållaren, installera nya paket och bygga en ny Docker-bild från den.

I den här tutorialen kommer vi att förklara hur man fäster till behållarens huvudsakliga körprocess och hur man får ett skal till en löpande behållare.

Fäst på en behållare

Även om det är möjligt att köra flera processer i en container kör de flesta dockningscontainrar bara en enda process. Kommandot som utförs vid start av en container specificeras med ENTRYPOINT och / eller RUN instruktionen.

Med docker attach kan du ansluta din terminal till den löpande behållaren. Detta är användbart när du vill se vad som skrivs i standardutdata i realtid eller för att kontrollera processen interaktivt.

För att bättre förstå hur attach kommandot fungerar låt oss köra en ny fristående Nginx-behållare med den officiella Nginx-bilden.

docker container run --name my_nginx -d -p 8080:80 nginx

-p 8080:80 berättar för Docker att binda behållarens port 8080 till port 80 på värdmaskinen.

Lista behållarna för att se till att behållaren "my_nginx" körs:

docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8e1c4974a8d8 nginx "nginx -g 'daemon of…" 3 minutes ago Up 2 seconds 0.0.0.0:8080->80/tcp my_nginx

Fäst till behållaren med behållarens ID eller namn:

docker container attach my_nginx

Standardkommandot för nginx-bilden som körs när du kör behållaren är inställd på CMD . När du kör nginx attach din terminal till nginx processen.

Öppna 127.0.0.1:8080 i din webbläsare och du kan se utgången från nginx-processen i realtid.

192.168.33.1 - - "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-" 192.168.33.1 - - "GET /favicon.ico HTTP/1.1" 404 555 "http://192.168.33.71:8080/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-"

För att få tillgång till behållarloggarna bör du föredra att använda docker logs .

För att ta loss från behållaren utan att stoppa den, använd CTRL-p CTRL-q . Att trycka på CTRL-c stoppar behållaren.

Om de körprocesser du kopplar till accepterar input kan du skicka instruktioner till den.

Skaffa ett skal till en behållare

Med docker exec kommandot kan du köra kommandon i en löpande behållare.

För att se hur exec kommandot fungerar och hur det kan användas för att komma in i containerskalet startar du först en ny behållare. Vi använder den officiella MySQL-bilden:

docker container run --name my_mysql -d mysql

Detta skapar en behållare med namnet “my_mysql”.

Kör följande kommando för att utföra ett kommando i behållaren:

docker container exec -it my_mysql ls /var

Alternativet -i står för interaktiv, och -t berättar för Docker att tilldela en pseudo TTY-enhet. Kommandot ls listar alla filer och kataloger i containerkatalogen /var :

backups cache lib local lock log mail opt run spool tmp

För att få ett skal till behållaren, dvs för att komma in i behållaren, starta en ny skal-session genom att köra skalet binärt. Du kan använda sh , bash eller något annat skal som ingår i bilden.

Kommandot nedan skapar en ny Bash-session i behållaren:

docker container exec -it my_mysql /bin/bash

Din kommandoprompt kommer att ändras, vilket indikerar att du nu arbetar med containerskalet.

Härifrån kan du köra kommandon på samma sätt som du gör på någon annan Linux-server. För att till exempel få en lista över de aktuella miljövariablerna, typ env :

env

Utgången ser ut så här:

HOSTNAME=e0214d97e0fe MYSQL_ROOT_PASSWORD=my-secret-pw PWD=/ HOME=/root MYSQL_MAJOR=8.0 GOSU_VERSION=1.7 MYSQL_VERSION=8.0.17-1debian9 TERM=xterm SHLVL=1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin _=/usr/bin/env

Slutsats

Med docker exec och docker attach kan du ansluta till en löpande container. För att få ett interaktivt skal till en behållare, använd exec kommandot för att starta en ny skal-session. attach fäster din terminal till en löpande behållare.

hamnarbetare