USER和WORKDIR指令是否保存在下游docker文件中?

时间:2016-03-21 15:20:05

标签: docker dockerfile

我有2个泊坞窗图像,第一个Dockerfile使用:

创建用户
RUN useradd -m newuser

然后按如下方式切换到用户和工作区:

USER newuser
WORKDIR /home/newuser/

第二个docker文件使用FROM语句从第一个图像读取。

USERWORKDIR指令是否仍然存在于第二个文件中,而不必再将它们放入?

1 个答案:

答案 0 :(得分:3)

从这个Dockerfile:

FROM debian:8

ENV HOME /home/user
RUN useradd --create-home --home-dir $HOME user \
    && mkdir -p $HOME \
    && chown -R user:user $HOME

WORKDIR $HOME
USER user

构建并稍后运行:

$docker build -t deb .
$docker run --rm deb bash -c "pwd && whoami"
/home/user
user

现在来自这个Dockerfile,基于上一张图片:

FROM deb
ENTRYPOINT [ "sh" ]

构建并运行:

$docker build -t debb .
$docker run --rm -it debb
[container]$ pwd && whoami
/home/user
user

所以,是的,USERWORKDIR 继承了

Client:
 Version:      1.10.3
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   20f81dd
 Built:        Thu Mar 10 15:38:58 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.10.3
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   20f81dd
 Built:        Thu Mar 10 15:38:58 2016
 OS/Arch:      linux/amd64