Toruń JUG #41 - "Kontenery są do bani..." - Sebastian Łaskawiec
Spisu treści:
Łączenie z działającym kontenerem Docker jest pomocne, gdy chcesz zobaczyć, co dzieje się wewnątrz kontenera. Jeśli kontener Docker nie działa zgodnie z oczekiwaniami, możesz dołączyć do kontenera lub uzyskać powłokę do kontenera i uruchomić polecenia takie jak
ps
lub
top
. Możesz także wejść do kontenera, zainstalować nowe pakiety i zbudować z niego nowy obraz Dockera.
W tym samouczku wyjaśnimy, jak dołączyć do głównego uruchomionego procesu kontenera i jak uzyskać powłokę do działającego kontenera.
Dołącz do kontenera
Chociaż możliwe jest uruchomienie wielu procesów w kontenerze, większość kontenerów dokerów uruchamia tylko jeden proces. Polecenie, które jest wykonywane podczas uruchamiania kontenera, jest określone za pomocą instrukcji
ENTRYPOINT
i / lub
RUN
.
Polecenie
docker attach
umożliwia podłączenie terminala do działającego kontenera. Jest to przydatne, gdy chcesz zobaczyć, co jest zapisane na standardowym wyjściu w czasie rzeczywistym lub kontrolować proces interaktywnie.
Aby lepiej zrozumieć działanie polecenia
attach
uruchommy nowy odłączony pojemnik Nginx, używając oficjalnego obrazu Nginx.
docker container run --name my_nginx -d -p 8080:80 nginx
Opcja
-p 8080:80
mówi Dockerowi, aby powiązał port 8080 kontenera z portem 80 na hoście.
Wymień kontenery, aby upewnić się, że kontener „my_nginx” jest uruchomiony:
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
Dołącz do kontenera, używając identyfikatora lub nazwy kontenera:
docker container attach my_nginx
Domyślne polecenie obrazu nginx, które jest wykonywane po uruchomieniu kontenera, jest ustawione na
CMD
. Po uruchomieniu polecenia
attach
terminal dołącza się do procesu
nginx
.
Otwórz
127.0.0.1:8080
w przeglądarce i możesz oglądać wyniki procesu nginx w czasie rzeczywistym.
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" "-"
Aby uzyskać dostęp do dzienników kontenera, powinieneś preferować użycie komendy
docker logs
.
Aby odłączyć się od pojemnika bez zatrzymywania go, użyj
CTRL-p
CTRL-q
. Naciśnięcie
CTRL-c
zatrzymuje pojemnik.
Jeśli uruchomione procesy, do których dołączasz, akceptują dane wejściowe, możesz wysyłać do nich instrukcje.
Dostań pocisk do kontenera
Polecenie
docker exec
pozwala na uruchamianie poleceń w działającym kontenerze.
Aby zobaczyć, jak działa polecenie
exec
i jak można go użyć do wejścia do powłoki kontenera, najpierw uruchom nowy kontener. Użyjemy oficjalnego obrazu MySQL:
docker container run --name my_mysql -d mysql
Spowoduje to utworzenie kontenera o nazwie „my_mysql”.
Aby wykonać polecenie w kontenerze, uruchom następujące polecenie:
docker container exec -it my_mysql ls /var
Opcja
-i
oznacza Interactive, i
-t
mówi Dockerowi, aby przydzielił pseudo urządzenie TTY. Polecenie
ls
wyświetli wszystkie pliki i katalogi w katalogu
/var
kontenera:
backups cache lib local lock log mail opt run spool tmp
Aby dostać powłokę do kontenera, tj. Aby wejść do kontenera, rozpocznij nową sesję powłoki, wykonując plik binarny powłoki. Możesz użyć
sh
,
bash
lub dowolnej innej powłoki zawartej w obrazie.
Poniższe polecenie utworzy nową sesję Bash wewnątrz kontenera:
docker container exec -it my_mysql /bin/bash
Twój wiersz polecenia zmieni się, wskazując, że pracujesz teraz nad powłoką kontenera.
Stąd możesz uruchamiać polecenia w taki sam sposób, jak na dowolnym innym serwerze Linux. Na przykład, aby uzyskać listę bieżących zmiennych środowiskowych wpisz
env
:
env
Dane wyjściowe będą wyglądać mniej więcej tak:
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
Wniosek
Polecenia
docker exec
i
docker attach
pozwalają ci połączyć się z działającym kontenerem. Aby uzyskać interaktywną powłokę do kontenera, użyj polecenia
exec
aby rozpocząć nową sesję powłoki. Polecenie dołącza dołącza terminal do działającego kontenera.
Jak znaleźć i połączyć się z ukrytymi sieciami WiFi w systemie Windows 10
Co to jest ukryta sieć WiFi lub ukryty identyfikator SSID? Jak znaleźć i połączyć się z ukrytymi sieciami WiFi w systemie Windows 10? Jak ukryć swoją sieć bezprzewodową? Ten post odpowiada na wszystkie pytania.
Jak połączyć lub połączyć konto Skype i Microsoft - Najczęściej zadawane pytania
Microsoft dokona synchronizacji konta Skype i Microsoft w jednym. Zobacz, jak połączyć konto Skype i Microsoft, aby ułatwić i wygodniej zalogować się.
Jak wyświetlić listę kontenerów w oknie dokowanym
Docker to platforma konteneryzacji, która umożliwia szybkie budowanie, testowanie i wdrażanie aplikacji jako przenośnych, samowystarczalnych kontenerów, które można uruchomić praktycznie w dowolnym miejscu. W tym artykule wyjaśnimy, jak wyświetlić listę kontenerów Docker.







