Dockerfile(3) - WORKDIR 指令详解

简介: Dockerfile(3) - WORKDIR 指令详解

WORKDIR


  • 切换到镜像中的指定路径,设置工作目录
  • 在 WORKDIR 中需要使用绝对路径,如果镜像中对应的路径不存在,会自动创建此目录
  • 一般用 WORKDIR 来替代 RUN cd <path> && <do something> 切换目录进行操作的指令
  • WORKDIR 指令为 Dockerfile 中跟随它的任何 RUN、CMD、ENTRYPOINT、COPY、ADD 指令设置工作目录
  • 如果 WORKDIR 不存在,即使它没有在任何后续 Dockerfile 指令中使用,它也会被创建

 

小栗子


会将宿主机的 test.txt 文件复制到 镜像的 /tmp/test.txt

WORKDIR /tmp
COPY test.txt .

 

使用相对路径的场景


WORKDIR 指令可以在 Dockerfile 中多次使用

如果提供了相对路径,它将相对于一个 WORKDIR 指令的路径

WORKDIR /a
WORKDIR b
WORKDIR c
RUN pwd

pwd 的输出将会是 /a/b/c

 

推荐

为了避免出错,推荐WORKDIR指令中只使用绝对路径

 

使用环境变量


WORKDIR 指令可以使用前面 ENV 设置的环境变量

ENV DIRPATH=/path

WORKDIR $DIRPATH/$DIRNAME

RUN pwd    # /path/$DIRNAME

 

相关文章
|
NoSQL 关系型数据库 MySQL
Dockerfile(9) - ENTRYPOINT 指令详解
Dockerfile(9) - ENTRYPOINT 指令详解
794 0
|
2月前
|
Docker 容器
在Docker中,Dockerfile有哪些常见指令?
在Docker中,Dockerfile有哪些常见指令?
|
5月前
|
JSON 物联网 Shell
Dockerfile指令详解
Dockerfile指令详解
86 0
|
5月前
|
Linux Docker 容器
Docker Dockerfile 语法与指令
Docker Dockerfile 语法与指令
55 0
|
存储 Shell 应用服务中间件
学习Docker就应该掌握的dockerfile语法与指令
在日常的工作中,常常需要制作自己的项目的镜像,一般通过以下两种方式制作镜像:Docker commit、Dockerfile。 ## Docker commit Docker commit一般用做从一个运行状态的容器来创建一个新的镜像。定制镜像应该使用Dockerfile来完成。 ``` docker commit 容器名 新镜像名:tag ``` 使用这种方式的缺点是:1.对外不
|
存储 JSON 监控
纯干货!Docker Dockerfile指令大全(下)
什么是 Dockerfile? Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。使用docker build命令,用户可以创建基于基础镜像的自定义镜像。
|
Docker 容器
Dockerfile文件中CMD指令与ENTRYPOINT指令的区别
本文是博主学习docker 制作镜像指令的记录,希望对大家有所帮助
181 0
Dockerfile文件中CMD指令与ENTRYPOINT指令的区别
Dockerfile(1) - FROM 指令详解
Dockerfile(1) - FROM 指令详解
583 0
|
存储 应用服务中间件 调度
Dockerfile(12) - HEALTHCHECK 指令详解
Dockerfile(12) - HEALTHCHECK 指令详解
385 0
Dockerfile(12) - HEALTHCHECK 指令详解
|
Linux Shell 应用服务中间件
Dockerfile指令详解(六)
dockfile详细配置 1.dockerfile主要组成部分 基础镜像信息 FROM centos:6.9 制作镜像操作指令 RUN yum -y install openssh-server 容器启动时操作指令 CMD ["/bin/bash"]
494 0
Dockerfile指令详解(六)