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.