Windows 上的 Dockerfile

本文详细介绍了如何在Windows环境中使用Dockerfile创建容器镜像。内容涵盖Dockerfile的基本语法、常用指令如FROM、RUN、COPY、ADD、WORKDIR、CMD的用法,以及在Dockerfile中使用PowerShell命令和REST调用的方法。Docker build过程和Dockerfile的最佳实践也有提及。
摘要由CSDN通过智能技术生成

Docker 引擎包含用于自动创建容器映像的工具。 尽管可以使用 docker commit 命令手动创建容器映像,然而采用自动映像创建过程可获得许多好处,其中包括:

  • 将容器映像存储为代码。
  • 可出于维护和升级的目的快速而精确地重新创建容器映像。
  • 容器映像和开发周期之间的持续集成。

驱动实现这一自动化过程的 Docker 组件是 Dockerfile,以及 docker build 命令。

  • Dockerfile - 一个文本文件,包含创建新容器映像所需的指令。 这些指令包括对将用作基础的现有映像的标识、将在映像创建过程中运行的命令以及部署容器映像的新实例时将要运行的命令。
  • Docker build - 使用 Dockerfile 并触发映像创建过程的 Docker 引擎命令。

本文档将介绍将 Dockerfile 用于 Windows 容器的相关内容、讨论语法并详细介绍常用的 Dockerfile 指令。

本文档将通篇讨论容器映像和容器映像层的概念。 有关映像和映像分层的详细信息,请参阅映像快速入门指南

有关 Dockerfile 的完整详细信息,请参阅 docker.com 上的 Dockerfile 参考

Dockerfile 指令

基本语法

Dockerfile 的最基本形式十分简单。 下面的示例创建了一个新映像,其中包括 IIS 和一个“hello world”站点。 此示例包含了用于解释每个步骤的注释(通过 # 指示)。 本文的后续部分将对 Dockerfile 语法规则和 Dockerfile 指令进行更详细的讲解。

请注意,创建的 Dockerfile 不得带扩展名。 要在 Windows 中做到这一点,只需使用所选编辑器创建该文件即可,而不是使用“Dockerfile”符号(包括引号)保存。

复制

# Sample Dockerfile

# Indicates that the windowsservercore image will be used as the base image.
FROM microsoft/windowsservercore

# Metadata indicating an image maintainer.
LABEL maintainer="jshelton@contoso.com"

# Uses dism.exe to install the IIS role.
RUN dism.exe /online /enable-feature /all /featurename:iis-webserver /NoRestart

# Creates an HTML file and adds content to this file.
RUN echo "Hello World - Dockerfile" > c:\inetpub\wwwroot\index.html

# Sets a command or process that will run each time a container is run from the new image.
CMD [ "cmd" ]

有关 Windows 的 Dockerfile 的其他示例,请参阅 [Dockerfile 用于 Windows 存储库] (https://github.com/Microsoft/Virtualization-Documentation/tree/master/windows-container-samples)。

说明

Dockerfile 指令为 Docker 引擎提供创建容器映像所需的步骤。 这些指令按顺序逐一执行。 以下是有关一些基本 Dockerfile 指令的详细信息。 有关 Dockerfile 指令的完整列表,请参阅 [Docker.com 上的 Dockerfile 参考] (https://docs.docker.com/engine/reference/builder/)。

FROM

FROM 指令用于设置在新映像创建过程期间将使用的容器映像。 例如,使用指令 FROM microsoft/windowsservercore 时,所得到的映像派生自 Windows Server Core 基本操作系统映像映像并具有对其的依赖关系。 如果正在进行 Docker 生成过程的系统上不存在指定的映像,Docker 引擎将尝试从公有或私有映像注册表下载该映像。

格式

FROM 指令所采用的格式为:

复制

FROM <image>

示例

复制

FROM microsoft/windowsservercore
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值