带有多个参数的 Docker 构建命令
docker build
命令允许我们从 Dockerfile 创建 Docker 映像。它还允许我们从引用一组文件的上下文构建镜像,这些文件位于 PATH 或 URL 指定的位置。
另一方面,Dockerfile 只是一个只读文本文档,其中包含在组装我们的 Docker 映像时将调用的指令。Docker 映像是我们用来构建 Docker 容器的指令集、应用程序代码、依赖项、工具和库。
本文演示了如何使用 docker build
命令和多个参数。
带有多个参数的 docker build
命令
docker build
命令通常在终端或命令行中执行。
语法:
docker build [options] <directory path or URL>
PATH 或 URL 是指上下文中的一组文件,其中可能包括资源,例如预打包的 tarball 上下文、纯文本文件,甚至是 git 存储库。如果所有文件都存储在本地目录中,即与 Dockerfile 相同的目录,我们可以选择使用 .
作为路径。
此路径指定用于 docker 守护程序上的构建上下文的文件。
docker build .
我们可以在构建期间在 options 参数下传递多个参数。使用 –build-arg
标签,我们可以设置用户可以在构建时设置的值。
然而,我们首先需要在我们的 Dockerfile 中定义一个 ARG
指令,然后再使用 --build-arg
标签来构建镜像。我们可以像访问常规环境变量一样访问这个构建时变量;但是,它们在构建映像后不会持续存在。
虽然 ARG 指令的范围有限,但可以在指定基本映像之前声明它。我们还可以通过使用单独的 --build-arg
标签分别传递每个参数来传递多个构建参数。
语法:
docker build -t <image-name>:<tag> --build-arg <key1>=<value1> --build-arg <key2>=<value2> .
我们有一个简单的 Dockerfile,它在以下示例中定义了一些 ARG
值。在这种情况下,我们没有设置它们的默认值。
Docker 文件如下所示。
# base image
FROM python
ARG language
ARG name
# Set your working directory
WORKDIR /var/www/
# Copy the necessary files
COPY ./app.py /var/www/app.py
# Install the necessary packages
RUN pip install -r /var/www/requirements.txt
RUN echo "Hello $language Developer"
MAINTAINER Isaac Tonyloi
因此,我们应该在构建镜像时使用 -build-arg
标签传递值。
~/my-app$ docker build --build-arg language=Java .
使用上面的命令构建镜像将在其他文件旁边打印消息 Hello Java Developer
,如下所示。
0.0s
=> [5/6] RUN pip install -r /var/www/requirements.txt 100.4s
=> [6/6] RUN echo "Hello Java Developer" 4.4s
=> exporting to image 3.8s
=> => exporting layers 2.8s
=> => writing image sha256:22fa358b711d2ea3a1d72e59f062f6c7c38b414bdb253fb8d0def20222cadd93
我们还可以使用多个 --build-arg
标签将 docker build
与多个命令一起使用。
/my-app$ docker build \
> --build-arg language=Java \
> --build-arg name=Tonyloi \
> .
这将在下方和其他消息旁边打印消息。虽然这是非常基本的,但这是在从 Dockerfile 构建 Docker 映像时传递多个命令的方式。
输出:
=> [2/2] RUN echo "Hello Java Developer and my name is Tonyloi" 3.3s
=> exporting to image 3.0s
=> => exporting layers 2.0s
=> => writing image sha256:d4d7c3b18aa9422be2990f5381a5423a18867dda8090dd4a4f166efc4e7c4ba2
相关文章
在 Linux 中托管 Docker Internal
发布时间:2023/04/18 浏览次数:139 分类:Docker
-
Docker 允许开发人员通过将应用程序包装在称为容器的标准化单元中来高效地构建、测试和部署应用程序。 在使用 Docker 容器时,您可能会遇到需要将容器与主机连接的场景。
在 Docker 中设置工作目录
发布时间:2023/04/18 浏览次数:82 分类:Docker
-
在 Docker 中,我们可以通过编辑 Dockerfile 并添加密钥 WORKDIR 来设置我们的工作目录。本文将讨论在 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 命令之间的区别。