Heim > Fragen und Antworten > Hauptteil
在Docker compose 的yml文件中,
有个参数叫工作目录,即:working_dir,
什么工作在“工作目录”进行?
百度了一下没找到很好的解释。
阿神2017-04-24 09:13:18
你知道Linux下面的pwd命令么?用来显示当前路径的绝对地址的那个。
如果你知道它的全拼,你就不会有这个问题了。
pwd的全拼是“print working directory”。
然后再说docker compose里面的这个参数。
在看到提问之前我也不知道docker compose里面有个working_dir,第一想法和上面的某个答案一样,是Dockerfile里面的WORKDIR,这个WORKDIR的意思自然是当前目录切换到指定的路径的意思。
但是楼主言之凿凿,然后我想到了compose文件其实是把docker run的命令行配置的另外一种形式,那么很有可能在docker run里面也有这个属性。
随手docker run --help一下,发现其中有条“-w, --workdir Working directory inside the container”参数。
果然,这是docker run的时候用来设置工作路径的参数。然后搜索compose中的这个属性,谷歌了一下,找到了Docker的官方文档:
working_dir, entrypoint, user, hostname, domainname, mem_limit, privileged, restart, stdin_open, tty, cpu_shares
Each of these is a single value, analogous to its docker run counterpart
果然,compose文件里面的配置直接对应了docker run后面的参数,此处应有微笑脸。
高洛峰2017-04-24 09:13:18
格式为 WORKDIR /path/to/workdir。
为后续的 RUN、CMD、ENTRYPOINT 指令配置工作目录。
比如
WORKDIR /home/docker/
之后执行的命令都默认在/home/docker/目录下
如: vim key.json
这文件实际的路径是/home/docker/key.json