Как запустить bash как пользователь root на изображениях alpine с docker? su: для правильной работы должен быть установлен suid - PullRequest
1 голос
/ 08 мая 2020

Изменить: Ответ настолько ясен. При входе в контейнер можно использовать флаг --user root.

docker exec -it --user root mycontainername bash                 or sh

Я только что загрузил этот официальный docker хаб 1.5.0-alpine образ для службы (Kong API Gateway) и теперь Я не могу запускать команды apk для установки, например, nano.

Раньше мне просто нужно было ввести контейнер

docker exec -it kong sh 

или

docker-compose exec kong sh

, и я был например, может запускать такие команды, как apk update или apk add nano.

Но теперь я получаю эти ошибки

$ apk update                                                                                                                                   
ERROR: Unable to lock database: Permission denied                                                                                                
ERROR: Failed to open apk database: Permission denied

$ apk add nano
ERROR: Unable to lock database: Permission denied
ERROR: Failed to open apk database: Permission denied

Я также пробовал запускать sudo и su ... но получил

$ su
su: must be suid to work properly
$ su root
su: must be suid to work properly
$ suid
sh: suid: not found

Мне действительно нужно собирать мое собственное изображение? Я использовал официальный, и он работал нормально.

1 Ответ

4 голосов
/ 08 мая 2020

Вы можете запустить команду в контейнере как root, используя --user root. Чтобы получить оболочку:

docker exec -it --user root kong sh
...