Dockerfile 指令 WORKDIR介绍

Posted 苍青浪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dockerfile 指令 WORKDIR介绍相关的知识,希望对你有一定的参考价值。

Dockerfile中的WORKDIR指令用于指定容器的一个目录, 容器启动时执行的命令会在该目录下执行。

相当于设置容器的工作目录了。我们来看一个dockerfile文件

技术图片
#test
FROM ubuntu
MAINTAINER hello
RUN mkdir /mydir
RUN echo hello world > /mydir/test.txt
WORKDIR /mydir
CMD ["more" ,"test.txt"]
技术图片

假设根据该dockerfile构建的镜像名为 myimage

1、运行 docker run myimage  输出 hello world

2、运行 docker run myimage more test.txt  和上面输出一致

可以看出,more的参数是 test.txt,但没有指定路径,却能成功,说明当前路径就是上面WORKDIR指令设置的。

如果我们在上面的dockerfile中把WORKDIR指令去掉,创建的容器运行会报文件不存在错误。

 

3、可以在 docker run命令中用 -w参数覆盖掉WORKDIR指令的设置,如:

执行 docker run -w / myimage

上面的-w参数将容器的工作目录设置成了根目录,而根目录下没有test.txt文件。

所以结果显示:test.txt: No such file or directory

以上是关于Dockerfile 指令 WORKDIR介绍的主要内容,如果未能解决你的问题,请参考以下文章

Dockerfile 指令

Docker 容器技术 — Dockerfile

dockerfile语法

dockerfile语法

Docker学习笔记(7-3)Dockerfile的指令

linux12 - dockerfile01 -->构建镜像指令与编写案例