我们可以使用 WORKDIR将一个目录设置为 Dockerfile中的工作目录,但是如果我们不设置默认值,那么默认值是什么呢?
WORKDIR
Dockerfile
The default working directory for running binaries within a container is the root directory (/), but the developer can set a different directory with the Dockerfile WORKDIR command. The operator can override this with:
/
-w="": Working directory inside the container
这里: https://docs.docker.com/engine/reference/run/#workdir
码头工作区
表示它是 /,所以根目录
因为严格来说,没有用户,只有一个刚出生的码头或容器中的根。因此,对于每一个更改,都会有一个针对该容器的提交,就像这个 伙计所说的那样。因此,在默认情况下,WORKDIR 的 pwd 是 /根目录,每次执行这样的 /bin/bash时:
/bin/bash
$docker exec -i -t 53f784fwer54 /bin/bash
在一个正在运行的容器上,它会把你放在根目录的 /这里。
如其他地方所述,默认值的确是 /。但是值得一提的是,您几乎不会从一个空的 Docker 映像(FROM scratch)运行,所以 WORKDIR很可能是由您正在使用的基本映像设置的。
FROM scratch
例如,https://github.com/docker-library/tomcat/blob/master/Dockerfile-alpine.template有 WORKDIR $CATALINA_HOME,而 https://github.com/dockerfile/ubuntu/blob/master/Dockerfile有 WORKDIR /root(但是 https://hub.docker.com/r/base/archlinux/~/dockerfile/不使用 WORKDIR)
WORKDIR $CATALINA_HOME
WORKDIR /root
It is best, therefore, to set your own WORKDIR explicitly.