Kategorien
Docker

Verbinden mit einem Docker Container unter einem bestimmten User

Um sich mit einem bestimmten Benutzer in einen Docker-Container zu verbinden, können Sie den Befehl docker exec verwenden. Der Befehl hat folgendes Format:

docker exec -it [container_name_or_id] [command]

Der Parameter -i sorgt dafür, dass die Standardeingabe (stdin) an die angegebene Befehlszeile gebunden wird, während der Parameter -t dafür sorgt, dass ein pseudo-Terminal erstellt wird. Der container_name_or_id entspricht der ID oder dem Namen des Containers, mit dem Sie sich verbinden möchten. Der command ist der Befehl, den Sie ausführen möchten, wenn Sie sich mit dem Container verbunden haben.

Um sich beispielsweise mit dem Benutzer „testuser“ in einen Container mit dem Namen „mycontainer“ zu verbinden und eine Bash-Sitzung zu starten, würden Sie den folgenden Befehl verwenden:

docker exec -it mycontainer bash -c 'su - testuser'

Beachten Sie, dass Sie nur dann in einen Container als bestimmter Benutzer verbinden können, wenn der Benutzer auch tatsächlich in dem Container vorhanden ist.

Verwendung von docker-compose

Wenn Sie Docker Compose verwenden, können Sie den Befehl docker-compose exec verwenden, um sich mit einem bestimmten Benutzer in einen Container zu verbinden. Der Befehl hat folgendes Format:

Der service_name ist der Name des Dienstes, der in der Compose-Datei definiert ist, mit dem Sie sich verbinden möchten. Der command ist der Befehl, den Sie ausführen möchten, wenn Sie sich mit dem Container verbunden haben.

Um beispielsweise mit dem Benutzer „testuser“ in einen Dienst mit dem Namen „web“ zu verbinden und eine Bash-Sitzung zu starten, würden Sie den folgenden Befehl verwenden:

docker-compose exec web bash -c 'su - testuser'

Wie bereits erwähnt, beachten Sie, dass Sie nur dann in einen Container als bestimmter Benutzer verbinden können, wenn der Benutzer auch tatsächlich in dem Container vorhanden ist.