如何使用docker在alpine图像上以root用户身份运行bash?苏:要想正常工作,就必须用suid
编辑: 答案很清楚。进入容器时,可以使用标志如何使用docker在alpine图像上以root用户身份运行bash?苏:要想正常工作,就必须用suid,docker,docker-compose,kong,Docker,Docker Compose,Kong,编辑: 答案很清楚。进入容器时,可以使用标志--user root docker exec -it --user root mycontainername bash or sh 我刚刚下载了docker hub官方的1.5.0-alpine镜像服务(Kong API Gateway),现在我无法运行apk命令来安装nano 之前,我只需要进入集装箱 docker exec -it kong sh 或 例如,我能够运行类似于apk update或apk ad
--user root
docker exec -it --user root mycontainername bash or sh
我刚刚下载了docker hub官方的1.5.0-alpine镜像服务(Kong API Gateway),现在我无法运行apk命令来安装nano 之前,我只需要进入集装箱
docker exec -it 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
在容器中以root用户身份运行命令。要获取外壳,请执行以下操作:
docker exec -it --user root kong sh
您必须使用$CONTAINER\u ID:
docker exec -it --user root $CONTAINER_ID /bin/sh
构建自己的自定义图像是使用Docker的一个非常常规的部分,我不会回避它。(如您所示,如果您在
apk add…
中成功,那么一旦您删除容器,该工作就会丢失;将其写入Dockerfile是一种使其重复发生的好方法。)您是对的。但是在一个容器中使用apk add
或apt install
很方便,并且不会持久保存添加/安装的包。只是为了在那一刻调试一些东西。如果我无法与root连接?错误:身份验证信息“root”不存在有任何方法可以创建它吗?@NoamiA这听起来像是kubectl的问题(请参阅)。。使用容器名称是完全有效的,例如,docker run--name ubuntu\u bash--rm-i-t ubuntu bash
然后docker exec-It ubuntu\u bash
。
docker exec -it --user root $CONTAINER_ID /bin/sh