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

Ale*_*age 11 docker docker-compose kong

编辑: 答案很清楚。--user root进入容器时可以使用旗帜。

docker exec -it --user root mycontainername bash                 or sh
Run Code Online (Sandbox Code Playgroud)

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

之前,我只需要进入容器

docker exec -it kong sh 
Run Code Online (Sandbox Code Playgroud)

或者

docker-compose exec kong sh
Run Code Online (Sandbox Code Playgroud)

并且我能够运行诸如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
Run Code Online (Sandbox Code Playgroud)

我也尝试运行 sudo 和 su ......但我得到了

$ su
su: must be suid to work properly
$ su root
su: must be suid to work properly
$ suid
sh: suid: not found
Run Code Online (Sandbox Code Playgroud)

我真的需要构建自己的自定义图像吗?我使用的是官方的,它运行良好。

cha*_*ash 26

您可以使用--user root. 获取外壳:

docker exec -it --user root kong sh
Run Code Online (Sandbox Code Playgroud)

  • 如果我无法连接到root?错误:身份验证信息“root”不存在有什么方法可以创建它吗? (3认同)