115

我们可以WORKDIR在 中设置一个目录为工作目录Dockerfile,但是如果我们不设置,默认值是多少呢?

4

4 回答 4

74

码头工人工作目录

说是/,所以根目录

于 2016-06-13T05:46:49.257 回答
47

默认值确实/如其他地方所述。值得一提的是,您几乎永远不会从一个空的 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。)

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

于 2018-04-18T15:35:38.713 回答
20

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

-w="": Working directory inside the container

这里:https ://docs.docker.com/engine/reference/run/#workdir

于 2016-06-13T05:46:33.257 回答
5

因为没有用户,只有一个刚出生的 docker 或严格来说容器中的根。因此,正如这个人所说,对于每个更改都会对该容器进行提交。因此,默认情况下,或者您询问 WORKDIR 的密码是/ root 并且每次您执行/bin/bash这样的操作时:

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

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

于 2016-11-03T12:58:29.840 回答