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.
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.