Docker Exec w kontenerze jako root

Docker Exec w kontenerze jako root
Docker to potężne narzędzie do konteneryzacji, które pozwala użytkownikom tworzyć izolowane i samodzielne aplikacje. Kontenery Docker niosą podstawowy system operacyjny, aplikacje i wszystkie wymagane pakiety. Dlatego w niektórych przypadkach musimy mieć dostęp do powłoki systemowej, wykonywać polecenia i wykonać niestandardowe konfiguracje. Na szczęście Docker zapewnia nam funkcjonalność do uruchamiania poleceń w uruchamianiu kontenerów.

Ten samouczek ma na celu pokazanie, jak pracować z poleceniem Docker Exec w celu wykonywania poleceń w uruchamianiu kontenerów.

Podstawowe użycie

Praca z Docker Exec jest bardzo prosta. Zaczynamy od wywołania polecenia Docker Exec, a następnie nazwy lub identyfikatora kontenera oraz polecenia do wykonania.

Na przykład, aby uruchomić polecenie ECHO w kontenera Debian, używamy polecenia jako:

$ Docker Exec Debian Echo Hello

Komenda odradza skorupę kontenera Debiana i wykonuje polecenie Echo. Przykładowe dane wyjściowe pojawia się poniżej:

Aby uzyskać nazwę lub identyfikator działających kontenerów, użyj polecenia:

$ Docker Ps

Opcje Docker Exec

Polecenie Docker Exec obsługuje różne opcje modyfikacji funkcjonalności poleceń. Obsługuje następujące funkcje.

  • -I - Ta opcja utrzymuje stdin.
  • -T - spawnuje pseudo tty
  • -u - określa nazwę użytkownika lub UID.
  • -W - Working Directory
  • -P - Przydziela rozszerzone uprawnienia do polecenia.
  • -D - działa w trybie odłączonym.
  • -E - Ustawia zmienne środowiskowe.

Docker Exec Sh

W większości przypadków potrzebujemy instancji powłoki do kontenera, aby wykonywać surowe polecenia. Aby to zrobić, używamy polecenia Docker Exec.

$ Docker Exec debian -i -t /bin /bash

Polecenie powyżej uruchamia interaktywną powłokę. Dobrze jest upewnić się, że wykonywalny Bash istnieje przed uruchomionym poleceniem.

Jeśli bash lub jakakolwiek powłoka, której chcesz użyć, jest niedostępny, użyj SH w poniższym poleceniu:

$ Docker Exec -it /bin /sh

Jak widać, masz interaktywną sesję powłoki, w której możesz wykonywać polecenia.

Exec jako root

Aby wykonać polecenie jako root, użyj opcji -u. Opcja wymaga nazwy użytkownika lub UID użytkownika. Na przykład:

$ Docker Exec -u 0 Debian Whoami
$ root

W powyższym poleceniu używamy UID użytkownika root, aby wykonać polecenie WHOAMI jako root.

Aby użyć nazwy użytkownika zamiast UID użytkownika, użyj polecenia:

$ Docker Exec -u root Debian Whoami
$ root

Powyższe polecenie może pomóc, gdy chcesz rozwiązywać problemy lub wykonywać zadania wymagające podwyższonych uprawnień.

Wniosek

To wszystko dla polecenia Docker Exec.

Omówiliśmy przy użyciu Docker Exec do uruchamiania poleceń w uruchomionych kontenerach i odrwienia sesji powłoki. Na koniec omówiliśmy, jak uruchomić polecenia jako root za pomocą nazwy użytkownika i UID.