【日常记录-Docker】WORKDIR

Author:赵志乾
Date:2024-07-31
Declaration:All Right Reserved!!!

1. 简介

        WORKDIR在Dockerfile中用于设置其后续RUN、COPY、ADD、CMD、ENTRYPOINT的工作目录 ,若WORKDIR指定的目录不存在,则Docker会自动创建;

2. 语法

WORKDIR /path/workdir

        /path/workdir即为设置的工作目录路径;在Dockerfile内,可以通过多次使用WORKDIR来更改工作目录,RUN、COPY、ADD、CMD、ENTRYPOINT的每次执行都会相对于上一次工作设置的工作目录来解析新的路径;(若是未使用WORKDIR,则相对于镜像的根目录解析新路径);如下:

# 使用官方Python运行时作为父镜像  
FROM python:3.8-slim  
  
# 设置第一个工作目录  
WORKDIR /usr/src/app  
  
# 将当前目录下的文件复制到容器中的/usr/src/app  
COPY . .  
  
# 更改工作目录到/usr/src/app/scripts  
WORKDIR /usr/src/app/scripts  
  
# 在新的工作目录中运行脚本  
RUN python setup.py install  
  
# 再次更改工作目录(假设这是必要的)  
WORKDIR /data  
  
# 运行一个命令,它将在/data目录下执行  
CMD ["echo", "This is in /data"]

3. 注意事项

  • WORKDIR改变工作目录后,在其后的指令中便无需指定完整路径,从而让Dockerfile变得更清晰、易于理解;
  • 若需要在不同的层使用不同的工作目录,则可以多次使用WORKDIR;
  • WORKDIR创建的目录是容器内的目录,与宿主机上的目录没有直接关系;
  • WORKDIR不会影响容器启动后用户通过docker exec命令进入容器时的默认工作目录;
  • 为避免出错,推荐使用绝对路径来指定WORKDIR;

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫白小猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值