Android

Paano kumonekta sa isang lalagyan ng pantalan

Delivering Desktop Apps in Containers

Delivering Desktop Apps in Containers

Talaan ng mga Nilalaman:

Anonim

Ang pagkonekta sa isang tumatakbo na lalagyan ng Docker ay kapaki-pakinabang kung nais mong makita kung ano ang nangyayari sa loob ng lalagyan. Kung ang lalagyan ng Docker ay hindi gumagana tulad ng inaasahan, maaari kang maglakip sa lalagyan o kumuha ng isang shell sa lalagyan at magpatakbo ng mga utos tulad ng ps o top . Maaari mo ring ipasok ang lalagyan, mag-install ng mga bagong pakete, at bumuo ng isang bagong imahe ng Docker mula dito.

Sa tutorial na ito, ipapaliwanag namin kung paano ilakip sa pangunahing proseso ng pagpapatakbo ng lalagyan at kung paano makakuha ng isang shell sa isang tumatakbo na lalagyan.

Maglakip sa isang lalagyan

Bagaman posible na magpatakbo ng maraming mga proseso sa isang lalagyan, karamihan sa mga lalagyan ng docker ay tumatakbo lamang sa isang solong proseso. Ang utos na naisagawa kapag nagsisimula ang isang lalagyan ay tinukoy gamit ang ENTRYPOINT at / o RUN pagtuturo.

Pinapayagan ka ng utos ng docker attach na mag-attach sa iyong terminal sa tumatakbo na lalagyan. Ito ay kapaki-pakinabang kung nais mong makita kung ano ang nakasulat sa karaniwang output sa real-time, o upang makontrol ang proseso nang interactive.

Upang mas mahusay na maunawaan kung paano gumagana ang attach utos hayaan nating magpatakbo ng isang bagong natanggal na lalagyan ng Nginx gamit ang opisyal na imahe ng Nginx.

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

Ang pagpipilian na -p 8080:80 nagsasabi sa Docker na itali ang port 8080 ng lalagyan upang port 80 sa host machine.

Ilista ang mga lalagyan upang matiyak na ang "my_nginx" na lalagyan ay tumatakbo:

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

Maglakip sa lalagyan gamit ang ID o pangalan ng lalagyan:

docker container attach my_nginx

Ang default na utos ng nginx na imahe na naisakatuparan kapag pinapatakbo mo ang lalagyan ay nakatakda sa CMD . Kapag pinatakbo mo ang utos ng attach iyong terminal ay naka-attach sa proseso ng nginx .

Buksan ang 127.0.0.1:8080 sa iyong browser at maaari mong panoorin ang output ng proseso ng ngxx sa totoong oras.

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

Upang makakuha ng pag-access sa mga log ng lalagyan ay mas gusto mong gamitin ang utos ng docker logs .

Upang alisin mula sa lalagyan nang hindi ito hinihinto, gamitin ang kumbinasyon ng CTRL-p CTRL-q key. Ang pagpindot sa CTRL-c humihinto sa lalagyan.

Kung ang mga nagpapatakbo na proseso na iyong nalalapit upang tanggapin ang input, maaari kang magpadala ng mga tagubilin dito.

Kumuha ng isang Shell sa isang lalagyan

Pinapayagan ka ng utos ng docker exec na magpatakbo ng mga utos sa loob ng isang tumatakbo na lalagyan.

Upang makita kung paano gumagana ang exec command at kung paano ito magagamit upang maipasok ang container shell, una, magsimula ng isang bagong lalagyan. Gagamitin namin ang opisyal na imahe ng MySQL:

docker container run --name my_mysql -d mysql

Lumilikha ito ng isang lalagyan na nagngangalang "my_mysql".

Upang magsagawa ng utos sa loob ng lalagyan patakbuhin ang sumusunod na utos:

docker container exec -it my_mysql ls /var

Ang pagpipilian ng -i nakatayo para sa interactive, at -t Docker na maglaan ng isang pseudo na aparato TTY. Ililista ng ls utos ang lahat ng mga file at direktoryo sa loob ng direktoryo ng /var lalagyan ng /var :

backups cache lib local lock log mail opt run spool tmp

Upang makakuha ng isang shell sa lalagyan ibig sabihin, upang makapasok sa loob ng lalagyan, magsimula ng isang bagong session ng shell sa pamamagitan ng pagpapatupad ng binary binary. Maaari mong gamitin ang sh , bash , o anumang iba pang mga shell na kasama sa imahe.

Ang utos sa ibaba ay lilikha ng isang bagong session ng Bash sa loob ng lalagyan:

docker container exec -it my_mysql /bin/bash

Magbabago ang iyong command prompt, na nagpapahiwatig na nagtatrabaho ka na sa container shell.

Mula dito, maaari kang magpatakbo ng mga utos sa parehong paraan tulad ng gagawin mo sa anumang iba pang mga server ng Linux. Halimbawa, upang makakuha ng isang listahan ng kasalukuyang uri ng variable variable sa env :

env

Ang output ay magiging hitsura ng isang bagay tulad nito:

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

Konklusyon

Pinapayagan ka ng mga docker exec at docker attach utos na kumonekta sa isang tumatakbo na lalagyan. Upang makakuha ng isang interactive na shell sa isang lalagyan, gamitin ang utos ng exec upang magsimula ng isang bagong session sa shell. Ang naka- attach utos ay attach iyong terminal sa isang tumatakbo na lalagyan.

docker