2017-02-17 3 views
0

Я создаю скрипт python для запуска изображения докеров. Я использую команду:Docker Python issue

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

Python возвращает сообщение об ошибке:

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

это понял ошибка, так как команда требует префикса SUDO то он запрашивает пароль.

Мой вопрос здесь в том, как запускать команды на основе sudo в python и как вставить в код необходимый пароль.

+1

См [как я Sudo команды в сценарии, не будучи попросил пароль?] (http://askubuntu.com/questions/155791/how-do-i-sudo-a-command-in-a-script-without-being-asked-for-a-password) – TemporalWolf

ответ

1

Вам действительно не нужна sudo для этой команды. Скорее всего, причина, по которой вы получаете эту ошибку, связана с тем, что у вас нет доступа к сокету докера. Все, что вам нужно сделать, это добавить себя в группу докеров. Убедитесь, что вы выходите из системы и входите в систему после этого.

Запуск вещей как root через sudo или некоторые другие средства - это плохая практика безопасности.

+1

Вы можете сделать это с помощью 'sudo adduser \' whoami \ 'docker' в дистрибутивах Debian. Впоследствии вы должны воссоздать свой сеанс входа в систему, так как групповые ассоциации обновляются только при входе в систему. – fzgregor

0

Вам нужно добавить пользователя в группу Docker следующим образом,

usermod -aG docker $SUDO_USER 

Ex: 
usermodel -aG docker ubuntu 

Пожалуйста, выход и SSH обратно после добавления пользователя