Dockerfile指令(4):WORKDIR
Dockerfile中的WORKDIR指令用于指定容器的一个目录,容器启动时执行的命令会在该目录下执行,相当于设置了容器的工作目录。我们来看一个dockerfile文件# testFROM ubuntuMAINTAINER helloRUN mkdir /mydir && echo hello world > /mydir/test.txtWORKDI
·
Dockerfile中的WORKDIR指令用于指定容器的一个目录,容器启动时执行的命令会在该目录下执行,相当于设置了容器的工作目录。我们来看一个dockerfile文件
# test
FROM ubuntu
MAINTAINER hello
RUN mkdir /mydir && echo hello world > /mydir/test.txt
WORKDIR /mydir
CMD ["more" ,"test.txt"]
test.txt内容是hello world
。假设根据该dockerfile构建的镜像名为myimage,我们有三种运行方式:
运行
docker run myimage
输出hello world
运行
docker run myimage more test.txt
,和上面输出一致
可以看出,more的参数是test.txt,但没有指定路径却能成功,说明当前路径就是上面WORKDIR指令设置的。如果我们在上面的dockerfile中把WORKDIR指令去掉,创建容器运行会报文件不存在错误。
- 可以在
docker run命令
中用-w参数覆盖掉WORKDIR指令的设置,如:
# docker run -w / myimage
上面的-w参数把容器的工作目录设置成了根目录,而根目录下没有test.txt文件。所以结果显示:test.txt: No such file or directory。
参考文章
更多推荐
已为社区贡献24条内容
所有评论(0)