【问题标题】:Running script configured in Dockerfile after starting container as root user以 root 用户身份启动容器后运行 Dockerfile 中配置的脚本
【发布时间】:2019-05-14 15:27:53
【问题描述】:

以 root 用户身份启动容器的正确方法是什么?

我正在尝试在容器启动时运行脚本。

以下是脚本的开始。

#!/bin/sh

[ "$USER" = root ] || { echo "You must run $0 as root."; exit 1; }

这里是 dockerfile 的内容。

USER root    
CMD "/service/run-dnscache.sh"

构建命令:

docker build --tag=friendlyhello --no-cache .

在运行容器时,用户似乎不是 root。如何以 root 身份运行它?

vpp@VPP1:~/tmp$ docker run -it  --user root friendlyhello
You must run /service/run-dnscache.sh as root.


vpp@VPP1:~/tmp$ docker run -it  friendlyhello
You must run /service/run-dnscache.sh as root.

【问题讨论】:

  • 试试[ $(whoami) = root ]
  • 您的完整 Dockerfile 是什么样的?如果$USER 的值不是root,那是什么?

标签: docker docker-compose containers dockerfile


【解决方案1】:

以 root 用户身份启动容器的正确方法是什么?

容器内的默认用户是 root。通常,通过 Docker 守护程序的容器也在主机上以 root 身份运行。

当你$(whoami) 在容器内启动时会发生什么?

【讨论】:

    猜你喜欢
    • 2018-07-02
    • 2021-02-26
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 2018-05-11
    相关资源
    最近更新 更多