编辑:答案很明确。进入容器时,可以使用标志--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 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
我真的需要建立自己的自定义图片吗?我使用的是官方的,并且工作正常。
您可以使用--user root
以根用户身份在容器内运行命令。要获得外壳:
docker exec -it --user root kong sh