以root用户身份启动容器后,在Dockerfile中配置的运行脚本

时间:2019-05-14 15:27:54

标签: docker docker-compose containers dockerfile

以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.

1 个答案:

答案 0 :(得分:1)

  

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

默认用户位于容器IS根目录下。通常,通过Docker守护程序生成的容器也以root用户身份在主机上运行。

启动时$(whoami)进入容器会发生什么情况?