Adding Container Images to Google Container Registry (GCR) | Demo
Cuprins:
Conectarea la un container Docker rulant este utilă atunci când doriți să vedeți ce se întâmplă în interiorul containerului. Dacă containerul Docker nu funcționează așa cum este de așteptat, puteți să vă atașați de container sau să obțineți un shell la container și să rulați comenzi, cum ar fi
ps
sau
top
. Puteți, de asemenea, să introduceți containerul, să instalați pachete noi și să construiți o nouă imagine Docker din acesta.
În acest tutorial, vă vom explica cum să vă atașați la procesul principal de rulare al containerului și cum să obțineți un shell la un container care rulează.
Atașați-vă la un container
Deși este posibil să rulați mai multe procese într-un container, majoritatea containerelor docker rulează doar un singur proces. Comanda care se execută la pornirea unui container este specificată folosind
ENTRYPOINT
și / sau
RUN
.
Comanda de
docker attach
vă permite să atașați terminalul la containerul rulant. Acest lucru este util când doriți să vedeți ce este scris în ieșirea standard în timp real sau să controlați procesul în mod interactiv.
Pentru a înțelege mai bine cum funcționează comanda
attach
, hai să rulăm un nou container Nginx detașat folosind imaginea oficială Nginx.
docker container run --name my_nginx -d -p 8080:80 nginx
Opțiunea
-p 8080:80
îi spune lui Docker să lege portul 8080 al containerului la portul 80 de pe mașina gazdă.
Enumerați containerele pentru a vă asigura că containerul „my_nginx” rulează:
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
Atașați-o la container utilizând ID-ul sau numele containerului:
docker container attach my_nginx
Comanda implicită a imaginii nginx care se execută la rularea containerului este setată la
CMD
. Când executați comanda
attach
terminalul dvs. se atașează la procesul
nginx
.
Deschide
127.0.0.1:8080
în browserul dvs. și puteți urmări ieșirea procesului nginx în timp real.
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" "-"
Pentru a avea acces la jurnalele de containere, ar trebui să preferați folosirea comenzii
docker logs
.
Pentru a detașa containerul fără a-l opri, utilizați
CTRL-p
CTRL-q
. Apăsarea
CTRL-c
oprește containerul.
Dacă procesele de rulare pe care le atașați pentru a accepta introducerea, puteți să îi trimiteți instrucțiuni.
Obțineți o coajă într-un container
Comanda
docker exec
vă permite să rulați comenzi într-un container care rulează.
Pentru a vedea cum funcționează comanda
exec
și cum poate fi utilizată pentru a intra în carcasa containerului, începeți mai întâi un nou container. Vom folosi imaginea oficială MySQL:
docker container run --name my_mysql -d mysql
Aceasta va crea un container numit „my_mysql”.
Pentru a executa o comandă în container, executați următoarea comandă:
docker container exec -it my_mysql ls /var
Opțiunea
-i
înseamnă o interacțiune și
-t
îi spune lui Docker să aloce un dispozitiv pseudo TTY. Comanda
ls
va lista toate fișierele și directoarele din directorul
/var
al containerului:
backups cache lib local lock log mail opt run spool tmp
Pentru a obține o coajă în container, adică pentru a intra în interiorul containerului, începeți o nouă sesiune de coajă executând binarul shell-ului. Puteți utiliza
sh
,
bash
sau orice altă coajă inclusă în imagine.
Comanda de mai jos va crea o nouă sesiune Bash în interiorul containerului:
docker container exec -it my_mysql /bin/bash
Indicatorul dvs. de comandă se va schimba, indicând că acum lucrați la carcasa containerului.
De aici, puteți rula comenzi în același mod ca și în orice alt server Linux. De exemplu, pentru a obține o listă a variabilelor de mediu actuale de tip
env
:
env
Rezultatul va arăta astfel:
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
Concluzie
Comenzile de execuție ale
docker exec
și ale
docker attach
-ului vă permit să vă conectați la un container care rulează. Pentru a obține un shell interactiv într-un container, utilizați comanda
exec
pentru a începe o nouă sesiune de shell. Comanda
attach
atașează terminalul dvs. la un container care rulează.
ÎN jucători Gomibako picătură tot felul de gunoi - I a manipulat o salte veche, o diapozitiv și o vioară pentru a numi doar câteva - într-o gunoasă de gunoi pentru a putea șterge etapele. Problema este că gunoiul se va umple în cele din urmă și, spre deosebire de cele mai multe piese de joc de puzzle, acestea nu doar dispare magic. Pentru a elibera mai mult spațiu, jucătorii trebuie să facă lucruri cum ar fi arsuri sau sparge conținutul cutii pentru a menține nivelurile de gunoi sub control.
Aici intră în joc un aspect interesant al jocului. În funcție de acțiunile pe care le faceți pentru a șterge etapa, ego-ul și eco-ul sunt evaluate. Deci, dacă nu ești foarte ecologic în metodele tale, te vei găsi cântând mai mult pe partea "ego" a lucrurilor.
Conectați-vă și conectați-vă la LinkedIn Sfaturi pentru securitate și confidențialitate
Aflați cele mai bune practici și setări de securitate și confidențialitate pentru conectarea la contul dvs. LinkedIn. Logarea va împiedica răsturnarea celorlalte activități ale dvs. și limita legătura cu LinkedIn la ceea ce faceți numai pe site-ul lor.
Cum să conectați smartphone-urile pentru a crea sunet surround
Aveți un smartphone și o tabletă? Sau câteva smartphone-uri? Folosind o aplicație simplă, le puteți asocia și crea o experiență de sunet surround. Iată cum.







