如何 运行 bash 作为 root 用户使用 docker 在 alpine 图像上? su:必须suid才能正常工作

How to run bash as user root on alpine images with docker? su: must be suid to work properly

编辑: 答案很明确。进入容器时可以使用标志--user root

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

我刚刚下载了这个官方 docker hub 的 1.5.0-alpine 服务镜像(Kong API 网关),现在我无法 运行 apk 命令来安装 nano,例如。

之前,我只需要进入容器

docker exec -it kong sh 

docker-compose exec kong sh

并且我能够 运行 命令,例如 apk updateapk 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

我真的需要构建自己的自定义图像吗?我用的是官方的,效果很好。

您可以 运行 使用 --user root 作为根用户在容器中执行命令。获得 shell:

docker exec -it --user root kong sh

您必须使用 $CONTAINER_ID :

docker exec -it --user root $CONTAINER_ID /bin/sh