我们可以WORKDIR
在中将目录设置为工作目录Dockerfile
,但如果未设置,默认值为什么?
Answers:
缺省值的确/
如其他地方所述。不过,值得一提的是,您几乎永远不会从空的docker映像(FROM scratch
)运行,因此WORKDIR
很有可能由您使用的基本映像设置。
例如,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
明确设置自己的名称。
在容器中运行二进制文件的默认工作目录是根目录(/
),但是开发人员可以使用Dockerfile WORKDIR命令设置其他目录。操作员可以使用以下方法覆盖它:
-w="": Working directory inside the container
因为没有用户,但严格来讲,只是刚出生的docker或容器中的根。因此,正如这个人所说的,每次更改都会对该容器进行一次提交。因此,该密码的pwd或您要求的WORKDIR/
默认情况下是root,并且每次执行以下命令时都为root /bin/bash
:
$docker exec -i -t 53f784fwer54 /bin/bash
在正在运行的容器上,它将把您放在/
根目录下。
/
不正确且不相关。新容器的默认工作目录与映像的默认工作目录相同。例如,我刚刚docker exec -ti <my_app> /bin/bash;
在新的bash进程中运行,然后pwd
看到工作目录为/app
。
RUN pwd