docker学习笔记13:Dockerfile 指令 WORKDIR介绍
2016-03-10 16:08
936 查看
Dockerfile中的WORKDIR指令用于指定容器的一个目录, 容器启动时执行的命令会在该目录下执行。
相当于设置容器的工作目录了。我们来看一个dockerfile文件
假设根据该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文件
#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
相关文章推荐
- GIS+=地理信息+容器技术(3)——Docker安装和镜像管理
- Docker时代来了,你准备好了吗
- docker学习笔记12:Dockerfile 指令 ENTRYPOINT介绍
- 关于Docker官方CentOS镜像无法启动mysqld的总结
- 分析Mysql 5.6的Dockerfile
- 关于Docker目录挂载的总结
- 利用Dockerfile构建一个基于centos 7,包括java 8, tomcat 7,php ,mysql+mycat的镜像
- Docker命令详解
- Docker——image与container
- Docker镜像
- Docker Hub仓库注册,使用
- 利用Docker Hub上的Nginx部署Web应用
- docker-registry 搭建私有仓库服务器
- centos7下安装使用docker
- CentOS7安装docker 启动不了解决篇
- linux 构建 docker 网络
- 技术干货 | Docker容器中需要避免的十种常见误区
- docker学习笔记11:Dockerfile 指令 CMD介绍
- 用浏览器管理 Docker
- docker 安装跟基本操作