在 Docker 中设置工作目录
如果存在,则计算中进程的工作目录是链接的分层文件系统中的一个目录,该文件系统对每个进程都是动态的。 在 Docker 中,我们可以通过编辑 Dockerfile 并添加密钥 WORKDIR 来设置我们的工作目录。
本文将讨论在 Docker 中更改我们当前和默认的工作目录。
Docker 中的 WORKDIR
Dockerfile 中的 WORKDIR 命令确定其后的任何 RUN、CMD、ENTRYPOINT、COPY 和 ADD 指令的工作目录。 我们可以在 Dockerfile 中多次使用 WORKDIR 指令。
如果我们提供相对路径,它将相对于先前 WORKDIR 指令的路径。
例如:
WORKDIR /usr
WORKDIR src/serv
RUN sampleserv
此 Dockerfile 中最终 sampleserv 命令的输出将是 /usr/src/serv。
WORKDIR 指令可以解析先前使用 ENV 指令指定的环境变量。 但是,我们只能使用在 Dockerfile 中显式设置的环境变量。
ENV DIRPATH=/usr
WORKDIR $DIRPATH/$DIRNAME
RUN sampleserv
此 Dockerfile 中的最终 sampleserv 命令的输出将是 /usr/$DIRNAME。
默认工作目录是根目录或 /
如果未指定。 实际上,如果您不是从头开始创建 Dockerfile (FROM scratch
),您使用的基础镜像可能已经配置了 WORKDIR。
因此,我们建议明确设置您的 WORKDIR 以防止未知文件夹中的意外活动。
为了清晰和可靠,我们应该始终为您的 WORKDIR 使用绝对路径。 另外,我们应该使用 WORKDIR 而不是增加像 RUN cd … && sample-code
这样难以阅读、故障排除和维护的指令。
相关文章
在 Linux 中托管 Docker Internal
发布时间:2023/04/18 浏览次数:139 分类:Docker
-
Docker 允许开发人员通过将应用程序包装在称为容器的标准化单元中来高效地构建、测试和部署应用程序。 在使用 Docker 容器时,您可能会遇到需要将容器与主机连接的场景。
在 Docker 容器中公开多个端口
发布时间:2023/04/18 浏览次数:143 分类:Docker
-
Docker 容器使用端口来实现万维网上不同设备之间的通信。 在本篇文章中,我们将学习如何使用 Nginx 应用程序在 Docker 容器中公开多个端口。
将用户添加到 Docker 容器
发布时间:2023/04/18 浏览次数:187 分类:Docker
-
在本文中,我们将学习如何通过实现返回产品数组的 Express 应用程序将用户添加到 Docker 容器。
使用 Docker 网络主机命令
发布时间:2023/04/18 浏览次数:112 分类:Docker
-
在本文中,我们将学习如何使用 --network 命令将容器添加到主机网络。 如果我们不使用此命令指定网络,我们还将了解如何将容器添加到默认网络。
清除 Docker 容器日志
发布时间:2023/04/18 浏览次数:181 分类:Docker
-
本文介绍了我们可以用来清除 docker 容器中日志的不同方法。日志是应用程序在特定事件或状态发生时记录的信息,它们帮助我们监控应用程序并采取必要的措施。
Dockerfile 中 COPY 和 ADD 命令的区别
发布时间:2023/04/18 浏览次数:158 分类:Docker
-
在 Dockerfile 中,我们可以使用 COPY 或 ADD 命令复制这些文件。 这些命令在功能上是相同的; 但是,存在一些差异。本文介绍了 Dockerfile 中 COPY 和 ADD 命令之间的区别。