我正在尝试调试我的应用程序,它运行在一个docker容器中的kubernetes中。该映像是使用sbt本机打包程序docker插件构建的。我想登录pod并在那里进行调查,但默认用户帐户(demiourgos728)没有权限,我不知道如何切换到根帐户。
我尝试过运行kubectl exec --user=root image -- bash (找不到用户),也尝试过在映像中运行su - (身份验证失败),但都没有成功。用于构建应用程序的基础镜像是java:8。
以下是我在build.sbt中的docker设置:
.settings(
Seq(
dockerBaseImage := "java:8",
publishArtifact := false,
dockerExposedPorts ++= Seq(8088),
packageName in Docker := "api-endpoint"
))发布于 2019-07-13 08:09:49
kubectl中的--user=root用于在kube-apiserver上进行身份验证,而不是强制容器作为容器中的用户执行命令。
如果您在您的节点上运行docker,并且想要强制升级到root,您可以ssh到您的容器正在运行的节点,然后运行:
$ docker exec -it --user=root <container-id> bash
# or
$ docker exec -it -u root <container-id> bash您可以通过以下方式找到您的pod/容器正在运行的节点:
$ kubectl describe pod <pod-id>https://stackoverflow.com/questions/57013318
复制相似问题