Co to jest tryb odłączony w świecie Dockera? Czytałem ten artykuł Link , ale nie wyjaśnia on dokładnie, co oznacza tryb odłączony.
Co to jest tryb odłączony w świecie Dockera? Czytałem ten artykuł Link , ale nie wyjaśnia on dokładnie, co oznacza tryb odłączony.
Odpowiedzi:
Możesz uruchomić kontener Dockera w trybie odłączonym za pomocą pliku -d opcji. Więc kontener uruchamia się i działa w tle. Oznacza to, że uruchamiasz kontener i możesz użyć konsoli po uruchomieniu do innych poleceń.
Przeciwieństwem trybu odłączonego jest tryb pierwszoplanowy. To jest tryb domyślny, gdy -dopcja nie jest używana. W tym trybie konsola, której używasz do wykonania, docker runzostanie podłączona do standardowego wejścia, wyjścia i błędu. Oznacza to, że konsola jest podłączona do procesu kontenera.
W trybie odłączonym możesz śledzić standardowe dane wyjściowe kontenera docker za pomocą docker logs -f <container_ID>.
Po prostu wypróbuj obie opcje. Zawsze używam trybu odłączonego do uruchamiania kontenerów. Mam nadzieję, że mógłbym to wyjaśnić trochę jaśniej.
docker logs -f [container_ID] > logs.txt. Jeśli to nie zadziała, spróbuj dodać flagę `` -it '' podczas uruchamiania kontenera Dockera, zgodnie z sugestią @BMitch poniżej.
Opcja odłączania w wierszu poleceń docker wskazuje, że klient docker ( docker) wyśle żądanie do serwera ( dockerd), a następnie zakończy działanie, podczas gdy to żądanie będzie kontynuowane na serwerze. Częścią zamieszania może być to, że docker wygląda jak pojedynczy proces, podczas gdy w rzeczywistości jest to aplikacja klient / serwer, gdzie klient jest tylko cienkim frontendem w REST API, który wysyła każde polecenie do serwera.
Z a docker container run --detachoznacza to, że kontener zostanie utworzony, serwer odpowie identyfikatorem kontenera, jeśli się powiedzie, a kontener będzie nadal działał na serwerze, podczas gdy możesz wykonywać inne polecenia. Jest to często używane w przypadku serwera (np. Nginx), na którym chcesz uruchomić w tle, podczas gdy kontynuujesz wykonywanie innych poleceń. Pamiętaj, że nadal możesz skonfigurować kontener z opcjami --interactivei -tty(często w skrócie -it), a później uruchomić a, docker container attachaby połączyć się z już działającym kontenerem. (Uwaga, dopóki nie podłączysz się do kontenera działającego z -itd, każda próba odczytu ze standardowego wejścia przez kontener zawiesza się, zamiast zobaczyć koniec danych wejściowych, który często powoduje natychmiastowe wyjście, jeśli właśnie zdałeś -d.)
W przypadku uruchomienia bez opcji odłączania klient natychmiast uruchomi wywołanie funkcji attach API po utworzeniu kontenera, aby można było zobaczyć dane wyjściowe i opcjonalnie podać dane wejściowe do uruchomionego procesu w kontenerze. Jest to przydatne, jeśli w Twoim kontenerze działa coś interaktywnego (np /bin/bash.).
Kilka innych poleceń umożliwia opcję odłączania, w tym docker-compose up -duruchomienie całego projektu i pozostawienie go uruchomionego na serwerze w tle. Istnieje również wiele docker servicepoleceń, które zostaną odłączone po przesłaniu zmiany na serwer w celu utworzenia lub zaktualizowania stanu docelowego usługi, lub jeśli nie odłączysz, klient będzie czekał, aż bieżący stan usługi będzie zgodny ze stanem docelowym i możesz zobaczyć postęp wdrażania. Zauważ docker service, że w przypadku poleceń może być konieczne przekazanie, --detach=falseaby pozostać podłączonym, zachowanie zmieniło się w ciągu ostatniego roku w zależności od wersji.
--detach-keys)
--interactivei --tty(aka -it), aby to zadziałało.
docker run -d -t ubuntu:14.04
docker run - utwórz wystąpienie z obrazu docker jako kontener docker. (jeśli obraz nie jest dostępny lokalnie, jest pobierany z centrum docker) ubuntu - nazwa obrazu
14.04 - Tag
-d, --detach - Tryb odłączania
-t, --tty - przydziela pseudo-TTY