Docker中的默认WORKDIR是什么?

时间:2016-06-13 05:40:29

标签: docker dockerfile

我们可以使用WORKDIR将目录设置为Dockerfile中的工作目录,但如果我们没有设置,那么默认值是什么?

4 个答案:

答案 0 :(得分:38)

docker workdir

表示它是/,因此根目录

答案 1 :(得分:11)

如其他地方所述,默认值为/。但值得一提的是,您几乎永远不会从空的泊坞窗图像(FROM scratch)运行,因此WORKDIR很可能是由您正在使用的基本图像设置的。

例如,https://github.com/docker-library/tomcat/blob/master/Dockerfile-alpine.templateWORKDIR $CATALINA_HOMEhttps://github.com/dockerfile/ubuntu/blob/master/DockerfileWORKDIR /root。 (https://hub.docker.com/r/base/archlinux/~/dockerfile/不使用WORKDIR。)

因此,最好明确设置自己的WORKDIR

答案 2 :(得分:6)

在容器中运行二进制文件的默认工作目录是根目录(/),但开发人员可以使用Dockerfile WORKDIR命令设置不同的默认值。操作员可以通过以下方式覆盖:

-w="": Working directory inside the container

此处:https://docs.docker.com/engine/reference/run/#workdir

答案 3 :(得分:4)

因为在刚出生的码头工人或容器中根本没有用户而是根。因此,对于每个更改,将会有一个对该容器的提交,正如guy所述。因此,默认情况下,当您执行/时,或者您对WORKDIR的询问是/bin/bash root:

$docker exec -i -t 53f784fwer54 /bin/bash

在正在运行的容器上,它会将您/放在根目录中。