Android

Kako se spojiti na spremnik docker

Uzela je 2 palete i isjekla ih na 2 dijela, a onda napravila nešto što svakoj kući treba !

Uzela je 2 palete i isjekla ih na 2 dijela, a onda napravila nešto što svakoj kući treba !

Sadržaj:

Anonim

Spajanje s tekućim Docker spremnikom korisno je kada želite vidjeti što se događa unutar spremnika. Ako spremnik Docker ne radi kako ste očekivali, možete ga priložiti ili dobiti ljusku spremnika i pokrenuti naredbe kao što su ps ili top . Također možete unijeti spremnik, instalirati nove pakete i iz njega izraditi novu Docker sliku.

U ovom tutorialu ćemo objasniti kako se pričvrstiti na glavni proces pokretanja i kako doći do ljuske u pokrenuti spremnik.

Pričvrstite na kontejner

Iako je moguće pokrenuti više procesa u spremniku, većina konjskih kontejnera pokreće samo jedan proces. Naredba koja se izvršava prilikom pokretanja spremnika određuje se pomoću upute ENTRYPOINT i / ili RUN .

Naredba za docker attach vam omogućava da svoj terminal priključite na spremnik koji radi. Ovo je korisno kada u stvarnom vremenu želite vidjeti što piše na standardnom izlazu ili interaktivno kontrolirati postupak.

Da bismo bolje razumjeli kako naredba attach pokrenimo novi odvojeni spremnik Nginx koristeći službenu sliku Nginx.

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

Opcija -p 8080:80 govori Dockeru da luku 8080 spremnika veže za port 80 na matičnom stroju.

Navedite popis spremnika da biste bili sigurni da je spremnik "my_nginx" pokrenut:

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

Pričvrstite na spremnik koristeći ID ili naziv spremnika:

docker container attach my_nginx

Zadana naredba nginx slike koja se izvršava kada pokrenete spremnik postavljena je na CMD . Kada pokrenete naredbu za attach vaš terminal se attach procesu nginx .

Otvorite 127.0.0.1:8080 u svom pregledniku i možete gledati izlaz nginx procesa u stvarnom vremenu.

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" "-"

Da biste pristupili zapisnicima spremnika, radije upotrijebite naredbu docker logs .

Za odvajanje od spremnika bez zaustavljanja, koristite kombinaciju CTRL-p CTRL-q . Pritiskom na CTRL-c sprečava se spremnik.

Ako pokrenuti procesi kojima se pridružujete prihvaćaju ulaz, možete mu poslati upute.

Ponesite školjku na kontejner

Naredba docker exec omogućuje vam pokretanje naredbi unutar spremnika.

Da biste vidjeli kako naredba exec radi i kako se može koristiti za ulazak u ljusku spremnika, prvo pokrenite novi spremnik. Koristit ćemo službenu MySQL sliku:

docker container run --name my_mysql -d mysql

Tako će se stvoriti spremnik pod nazivom "my_mysql".

Za izvršenje naredbe unutar spremnika pokrenite sljedeću naredbu:

docker container exec -it my_mysql ls /var

Opcija -i označava interaktivan i -t kaže Docker-u da dodijeli pseudo TTY uređaj. Naredba ls popisat će sve datoteke i mape u direktoriju /var spremnika:

backups cache lib local lock log mail opt run spool tmp

Da biste dobili ljusku u spremnik, tj. Unijeli unutar spremnika, započnite novu sesiju ljuske izvršavanjem binarne ljuske. Možete koristiti sh , bash ili bilo koju drugu ljusku koja je uključena u sliku.

Naredba u nastavku stvorit će novu Bash sesiju unutar spremnika:

docker container exec -it my_mysql /bin/bash

Vaš naredbeni redak će se promijeniti, što ukazuje da sada radite na ljusci spremnika.

Odavde možete izvoditi naredbe na isti način kao što biste to radili na bilo kojem drugom Linux poslužitelju. Na primjer, da biste dobili popis trenutnih varijabli okruženja, vrsta env :

env

Izlaz će izgledati ovako:

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

Zaključak

Naredbe docker exec i docker attach omogućuju vam povezivanje s tekućim spremnikom. Za dobivanje interaktivne ljuske u spremnik, pomoću naredbe exec pokrenite novu sesiju ljuske. Naredba za attach priključuje vaš terminal na spremnik koji radi.

lučki radnik