2017-02-17 1 views
0

Ich erstelle ein Python-Skript, um ein Docker-Image auszuführen. Ich bin mit dem Befehl:Docker Python-Problem

client.containers.run("-p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash", "echo hello world") 

Python eine Fehlermeldung zurück:

ConnectionError: ('Connection aborted.', error(13, 'Permission denied'))

dies ist ein Fehler verstanden, da der Befehl einen sudo Präfix erfordert dann ein Passwort aufgefordert.

Meine Frage hier ist, wie Sie sudo-basierte Befehle in Python ausführen und wie Sie das erforderliche Passwort in den Code einfügen.

+1

Siehe Hinzufügen [wie kann ich sudo einen Befehl in einem Skript, ohne nach einem Passwort gefragt?] (http://askubuntu.com/questions/155791/how-do-i-sudo-a-command-in-a-script-without-being-asked-for-a-password) – TemporalWolf

Antwort

1

Sie brauchen eigentlich kein sudo für diesen Befehl. Der wahrscheinlichste Grund für diesen Fehler ist, dass Sie keinen Zugriff auf den Docker-Socket haben. Sie müssen sich nur zur Docker-Gruppe hinzufügen. Stellen Sie sicher, dass Sie sich abmelden und erneut anmelden, nachdem Sie das getan haben.

Laufende Dinge als root über Sudo oder andere Mittel ist schlechte Sicherheitsvorkehrung.

+1

Sie können dies mit 'sudo adduser \' whoami \ 'docker auf Debian-artigen Distributionen tun. Anschließend müssen Sie Ihre Anmeldesitzung neu erstellen, da Gruppenzuordnungen nur bei der Anmeldung aktualisiert werden. – fzgregor

0

Sie müssen Benutzer der Docker Gruppe wie folgt hinzufügen,

usermod -aG docker $SUDO_USER 

Ex: 
usermodel -aG docker ubuntu 

Bitte verlassen und ssh zurück in nach dem Benutzer

Verwandte Themen