Cesta na ISS, část druhá: Rendezvous a připojení
Obsah:
Připojení ke spuštěnému kontejneru Docker je užitečné, pokud chcete vidět, co se uvnitř kontejneru děje. Pokud kontejner Docker nefunguje podle očekávání, můžete se k kontejneru připojit nebo získat do kontejneru prostředí a spouštět příkazy jako
ps
nebo
top
. Můžete také zadat kontejner, nainstalovat nové balíčky a z něj vytvořit nový obrázek Docker.
V tomto tutoriálu vysvětlíme, jak se připojit k hlavnímu běžícímu procesu kontejneru a jak získat prostředí k běžícímu kontejneru.
Připojit k kontejneru
Ačkoli je možné spouštět více procesů v kontejneru, většina kontejnerových kontejnerů běží pouze v jednom procesu. Příkaz, který se provádí při spuštění kontejneru, je určen pomocí
ENTRYPOINT
a / nebo
RUN
.
Příkaz
docker attach
umožňuje připojit váš terminál k běžícímu kontejneru. To je užitečné, pokud chcete vidět, co je zapsáno na standardním výstupu v reálném čase, nebo interaktivně řídit proces.
Abychom lépe porozuměli tomu, jak funguje příkaz
attach
, spustíme nový odpojený kontejner Nginx pomocí oficiálního obrazu Nginx.
docker container run --name my_nginx -d -p 8080:80 nginx
Volba
-p 8080:80
říká Dockerovi, aby svázal port 8080 kontejneru k portu 80 na hostitelském počítači.
Seznam kontejnerů zkontrolujte, zda je spuštěn kontejner „my_nginx“:
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
Připojte se k kontejneru pomocí ID nebo názvu kontejneru:
docker container attach my_nginx
Výchozí příkaz obrazu nginx, který se provede při spuštění kontejneru, je nastaven na
CMD
. Při spuštění příkazu
attach
váš terminál připojí k procesu
nginx
.
Otevřete ve svém prohlížeči
127.0.0.1:8080
a můžete sledovat výstup procesu nginx v reálném čase.
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" "-"
Chcete-li získat přístup k protokolům kontejnerů, měli byste raději použít příkaz
docker logs
.
Chcete-li se odpojit od kontejneru bez jeho zastavení, použijte
CTRL-p
CTRL-q
. Stisknutím klávesy
CTRL-c
se kontejner zastaví.
Pokud spuštěné procesy, které připojujete, přijímají vstup, můžete mu poslat pokyny.
Získejte Shell do kontejneru
Příkaz
docker exec
umožňuje spouštění příkazů uvnitř běžícího kontejneru.
Nejprve spusťte nový kontejner, abyste viděli, jak funguje příkaz
exec
a jak může být použit pro vstup do obalu kontejneru. Použijeme oficiální obrázek MySQL:
docker container run --name my_mysql -d mysql
Tím vytvoříte kontejner s názvem „my_mysql“.
Chcete-li provést příkaz uvnitř kontejneru, spusťte následující příkaz:
docker container exec -it my_mysql ls /var
Volba
-i
představuje interaktivní a
-t
říká Dockerovi, aby přidělil pseudo TTY zařízení. Příkaz
ls
vypíše všechny soubory a adresáře v adresáři
/var
kontejneru:
backups cache lib local lock log mail opt run spool tmp
Chcete-li získat shell do kontejneru, tj. Vstoupit do kontejneru, spusťte novou relaci shellu provedením binárního shellu. Můžete použít
sh
,
bash
nebo jakýkoli jiný shell, který je součástí obrázku.
Příkaz níže vytvoří novou relaci Bash uvnitř kontejneru:
docker container exec -it my_mysql /bin/bash
Váš příkazový řádek se změní, což znamená, že nyní pracujete na obalu kontejneru.
Odtud můžete spouštět příkazy stejným způsobem jako na kterémkoli jiném serveru Linux. Chcete-li například získat seznam aktuálních proměnných prostředí typu
env
:
env
Výstup bude vypadat asi takto:
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
Závěr
Příkazy pro spuštění a
docker attach
umožňují připojení k běžícímu kontejneru. Chcete-li získat interaktivní obal do kontejneru, použijte příkaz
exec
ke spuštění nové relace prostředí. Příkaz
attach
připojí váš terminál k běžícímu kontejneru.
Datová centra: Od přepravních kontejnerů až po stany

Jste slyšeli o datových centrech v přepravních kontejnerech. Ale co o datovém centru ve stanu? A v deštivém prostředí v Seattlu?
Došlo k chybě při výčtu objektů v kontejneru

Pokud nemůžete změnit oprávnění objektů a přijmout Nepodařilo se vyčíslit objekty v kontejneru , Chyba přístupu byla odepřena v systému Windows 10 / 8.1, viz tuto opravu.
Jak vypsat seznam kontejnerů v doku

Docker je platforma pro kontejnerizaci, která vám umožňuje rychle vytvářet, testovat a implementovat aplikace jako přenosné, soběstačné kontejnery, které mohou běžet prakticky kdekoli. V tomto článku si vysvětlíme, jak vypsat kontejnery Docker.