【问题标题】:How to elevate privileges in sbt-built docker image如何在 sbt-build docker 镜像中提升权限
【发布时间】:2019-11-22 14:18:50
【问题描述】:

我正在尝试调试我的应用程序,该应用程序在 docker 容器中的 kubernetes 中运行。该图像是使用 sbt native-packager docker 插件构建的。我想登录 pod 并在那里进行调查,但默认用户帐户 (demiourgos728) 没有权限,我不知道如何切换到 root 帐户。

我尝试运行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"
    ))

【问题讨论】:

    标签: scala docker kubernetes sbt


    【解决方案1】:

    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>
    

    【讨论】:

      猜你喜欢
      • 2021-01-14
      • 1970-01-01
      • 1970-01-01
      • 2020-03-08
      • 2016-05-18
      • 2017-04-09
      • 1970-01-01
      • 2020-02-26
      • 2022-10-15
      相关资源
      最近更新 更多