📜  Docker – WORKDIR指令

📅  最后修改于: 2021-04-17 03:50:22             🧑  作者: Mango

WORKDIR指令用于为所有后续Dockerfile指令设置工作目录。 Dockerfile中一些常用的指令是RUNADDCMDENTRYPOINTCOPY。如果未手动创建WORKDIR,则会在处理指令期间自动创建它。使用WORKDIR指令时需要注意的几点如下:

  • WORKDIR不会创建新的中间图像层。
  • 它将元数据添加到图像配置。
  • 您可以在Dockerfile中有多个WORKDIR指令。
  • 如果将相对路径用作工作目录,则它将相对于先前的工作目录。
  • 默认路径是/

在本文中,我们将讨论如何在Dockerfile中使用WORKDIR指令。我们还将讨论另外两种在Dockerfile内发布工作目录的方法。请按照以下步骤操作WORKDIR指令:

第1步:创建Dockerfile

您可以使用以下模板创建Dockerfile

FROM ubuntu:latest
WORKDIR /my-work-dir

第2步:构建Docker映像

要构建Docker映像,可以使用Docker Build命令。

sudo docker build -t workdir-demo

建立docker映像

步骤3:运行Docker容器

要运行Docker容器,可以使用Docker Run命令。

sudo docker run -it workdir-demo

运行容器

上面的命令打开容器的bash。

步骤4:验证工作目录

您可以使用打印工作目录(pwd)命令来打印工作目录。

验证目录

现在。让我们讨论在Dockerfile中发布工作目录的方法。有两种可能的方法,下面将对这两种方法进行说明:

1.通过指定相对路径的WORKDIR

让我们看看如何使用WORKDIR指令指定相对路径。

第一步是创建一个Dockerfile ,如下所述:

FROM ubuntu:latest
WORKDIR /my-work-dir
RUN echo "work directory 1" > file1.txt
WORKDIR /my-work-dir-2
RUN echo "work directory 2" > file2.txt

现在,构建并运行Docker容器。

sudo docker build -t workdir-demo .
sudo docker run -it workdir-demo bash

发行工作目录

最后,打印工作目录。

pwd

验证目录

第一个echo语句在工作目录设置为“ my-work-dir”文件夹的情况下运行。这就是为什么如果使用ls命令查看文件夹的内容,则会在其中找到“ file1.txt”的原因 “ my-work-dir”文件夹。第二条WORKDIR指令将工作目录更改为“ my-work-dir-2” ,因此文件“ file2.txt”位于该文件夹内。

清单目录

2.通过指定环境变量来生成WORKDIR

发出工作目录的第二种方法是利用环境变量。请按照以下步骤进行操作:

第一步是使用以下Dockerfile模板,如下所示:

FROM ubuntu:latest
ENV DIRPATH /app
WORKDIR $DIRPATH

在这里,我们将环境变量DIRPATH设置为/ app目录,并设置了WORKDIR。

现在,在运行Docker Container之后,您将找到设置为/ app的目录。

sudo docker build -t workdir-demo .
sudo docker run -it workdir-demo
pwd

发行工作目录

总而言之,在本文中,我们讨论了如何在Dockerfile中使用WORKDIR指令来设置工作目录。我们还看到了如何使用相对路径和环境变量来设置工作目录。