Wyślij zapytanie Dołącz do Sii

Polecenia kontenera mogą wprowadzać zmiany w jego systemie plików lub generować komunikaty w wyjściowym strumieniu danych. Celem tego wpisu jest przybliżenie sposób śledzenia aktywności kontenera: przeglądanie jego systemów plików oraz podgląd wyjściowego strumienia danych głównego procesu kontenera.

Ten wpis jest częścią serii wpisów o Dockerze. Jeżeli jakieś pojęcie jest używane bez wyjaśnienia to prawdopodobnie zostało wprowadzone w jednym z wcześniejszych wpisów.

* Zachęcamy również do zapoznania się z odświeżonymi w grudniu 2021 i styczniu 2022 artykułami nt. Dockera, które znajdziecie pod tym wpisem.

Podgląd głównego procesu

Pogląd aktywności głównego procesu kontenera można uzyskać poprzez połączenie własnego okna terminala ze strumieniami wejścia/wyjścia głównego procesu kontenerem. Służy do tego polecenie docker attach. Połączenie może być ustanowione tylko z działającym kontenerem.

docker attach [id lub nazwa kontenera]

Dla przykładu uruchommy kontener obrazu ubuntu z opcją -d (proces drugoplanowy) i poleceniem: /bin/sh -c 'while true; do date; sleep 1; done'. W wyniku zadanego polecenia kontener co jedną sekundę będzie wyświetlał aktualną datę.

docker run --name="ubuntu-container" -d ubuntu /bin/sh -c "while true; do date; sleep 1; done"

Kontener działa w tle, dlatego nie widzimy żadnych komunikatów wyjścia. Podłączmy się do kontenera w celu obserwacji strumienia danych wyjściowych.

docker attach ubuntu-container

Powinniśmy zacząć obserwować daty i czas pojawiające się na ekranie.

Tue Jan 12 08:52:36 UTC 2016
Tue Jan 12 08:52:37 UTC 2016
Tue Jan 12 08:52:38 UTC 2016
[...]

Połączenie z kontenerem możemy przerwać za pomocą kombinacji Ctrl+C. Należy zauważyć, że spowoduje to zatrzymane głównego procesu kontenera. Jeżeli chcielibyśmy mieć możliwość odłączenia się od kontenera pozostawiając go działającym powinniśmy zastosować jedno z rozwiązań:

  • Uruchomić kontener z opcją -t (--tty=true), połączyć się z kontenerem, zakończyć połączenie za pomocą kombinacji Ctrl+C. Opcja -t spowoduje, że w kontenerze zostanie zaalokowany terminal.
docker run -t --name=[id lub nazwa kontenera] [nazwa obrazu]
docker attach [id lub nazwa kontenera]
Ctrl+C
  • Uruchomić kontener z opcjami -t -i (--interactive=true), połączyć się z kontenerem, zakończyć połączenie za pomocą kombinacji Ctrl+P Ctrl+Q. Opcja -i powoduje, że w przypadku połączenia z kontenerem lokalny strumień wejścia zostanie przekierowany na strumień wejścia kontenera, a strumień wyjścia kontenera na lokalny strumień wyjścia.
docker run -ti --name=[id lub nazwa kontenera] [nazwa obrazu]
docker attach [id lub nazwa kontenera]
Ctrl+P Ctrl+Q
  • Uruchomić kontener, połączyć się z kontenerem z opcją --sig-term=false, zakończyć połączenie za pomocą kombinacji Ctrl+C. Ustawienie opcji --sig-term na false powoduje, że w wyniku wciśnięcia kombinacji Ctrl+C główny proces kontenera nie otrzymuje sygnału kończącego jego działanie.
docker run --name=[id lub nazwa kontenera] [nazwa obrazu]
docker attach --sig-term=false [id lub nazwa kontenera]
Ctrl+C

Przeglądanie plików

Swobodny dostęp do systemu plików działającego kontenera można uzyskać wykonując w nim polecenie tworzące nową powłokę. W celu uzyskania dostępu do strumieni wejścia i wyjścia powłoki polecenie docker exec należy wywołać z opcjami -i -t.

docker exec -it [id lub nazwa kontenera] bash

W wyniku powyższego polecenia znak zachęty w lokalnego terminala powinien zamienić się na znak zachęty terminala kontenera, np.:

root@6b3d860feb49:/# 

Jeżeli potrzebowalibyśmy kontenera tylko po to, żeby wykonać jakieś operacje w jego konsoli wystarczy stworzyć go i uruchomić z opcjami -it i poleceniem bash. W przypadku obrazu ubuntu polecenie bash jest wykonywane domyślnie, dlatego można je pominąć.

docker run -it ubuntu

* Zaktualizowane w 2021 i 2022 artykuły nt. Dockera

Spis wpisów w serii

5/5 ( głosy: 3)
Ocena:
5/5 ( głosy: 3)
Autor
Avatar
Piotr Wierzgała

Programista Python zainteresowany tematyką uczenia maszynowego.

Może Cię również zainteresować

Pokaż więcej artykułów

Bądź na bieżąco

Zasubskrybuj naszego bloga i otrzymuj informacje o najnowszych wpisach.

Otrzymaj ofertę

Jeśli chcesz dowiedzieć się więcej na temat oferty Sii, skontaktuj się z nami.

Wyślij zapytanie Wyślij zapytanie

Natalia Competency Center Director

Get an offer

Dołącz do Sii

Znajdź idealną pracę – zapoznaj się z naszą ofertą rekrutacyjną i aplikuj.

Aplikuj Aplikuj

Paweł Process Owner

Join Sii

ZATWIERDŹ

This content is available only in one language version.
You will be redirected to home page.

Are you sure you want to leave this page?