Docker: Dockerfile 中的默认 WORKDIR 是什么?

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

110562 次浏览

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时:

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

在一个正在运行的容器上,它会把你放在根目录的 /这里。

如其他地方所述,默认值的确是 /。但是值得一提的是,您几乎不会从一个空的 Docker 映像(FROM scratch)运行,所以 WORKDIR很可能是由您正在使用的基本映像设置的。

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

It is best, therefore, to set your own WORKDIR explicitly.