文档详情

为Windows创建Nodejs容器镜像.docx

发布:2024-08-01约3.64千字共7页下载文档
文本预览下载声明

为Windows创建Node.js容器镜像

即将到来的WindowsServer2016是第一个能运行Docker的Windows版本,上星期微软发布了相关的技术预览。

现在每个对在Windows上运行Docker感兴趣的人都能够通过以下方式进行初体验,首先你需要一个运行Windows2016TP3版本的虚拟机,这个虚拟机可以在Azure上或者本地部署。

在Windows上安装Docker

如果你只有一个尚未安装Docker的初始Window2016TP3系统,你可以参考快速入门指南。以管理员身份打开Powershell,并且执行以下命令:

wget-urihttp://aka.ms/setupcontainers-OutFileC:\ContainerSetup.ps1C:\ContainerSetup.ps1

这段脚本将下载并安装Docker守护进程以及一个基础镜像。现在Docker守护进程应该启动起来了,并且第一个基础镜像windowsservercore也运行起来了。你可以用dockerversion命令查看这个WindowsDocker守护进程的版本。

第一个专属的WindowsDocker镜像

作为第一个例子,我将演示如何为Windows创建一个Node.js镜像,我以官方

iojsDockerfile为基础,把这个文件迁移到Windows命令行,有以下三个步骤:

下载Node.js安装包

安装这个包

使用解释器作为CMD

这是我改造后的Windows版本的Dockerfile:

FROMwindowsservercore

ENVNPM_CONFIG_LOGLEVELinfo

ENVIOJS_VERSION3.2.0RUNpowershell-Commandwget-Uri/dist/v%IOJS_VERSION%/iojs-v%IOJS_VERSION%-x64.msi-OutFileiojs.msi-UseBasicParsingRUNmsiexec.exe/q/iiojs.msi

CMD[iojs]

请自行尝试,打开文本编辑器把这几行输入进去,并保存为一个名为Dockerfile的文件。然后用以下命令构建这个Docker镜像:

dockerbuild-tiojs.

dockertagiojs:latestiojs:3.2.0

至此你拥有了一个专属的Windows版本Docker镜像,同时上边第二句命令用iojs的版本号标记了iojs:latest镜像。你可能通过以下命令查看所有可用的镜像:

dockerimages

你可以通过运行这个镜像中的Node.js运行时来验证构建是否正常,如无意外将会打印出iojs的版本号。

PSC:\Users\vagrantdockerrun-itiojsiojs--versionv3.2.0

好了,我们现在已经在一个WindowsDocker容器中运行起最新的io.js了。

构建一个使用iojs:onbuild的Docker镜像

iojs官方的Docker镜像有另一个不错的Dockerfile使用了ONBUILD关键字,使用这个Dockerfile,可以非常简单地集成你的Node.js应用进一个新的Docker镜像中。你将不再需要在宿主机上安装Node.js。

我重新使用官方的iojs:onbuildDockerfile并把它迁移到Windows上。这是这个Dockerfile的Linux版本:

FROMiojs:3.1.0RUNmkdir-p/usr/src/appWORKDIR/usr/src/app

ONBUILDCOPYpackage.json/usr/src/app/ONBUILDRUNnpminstall

ONBUILDCOPY./usr/src/appCMD[npm,start]

它使用WORKDIR为之后的命令设定了当前执行目录,在Windows上这个命令和

COPY命令似乎还有待完善,目前的效果稍微和Linux容器上的有些差异,但是我找到了一个变通的方法。

以下是我修改官方onbuildDockerfile后能兼容目前Windowsdocker的版本:

FROMiojs:3.2.0RUNmkdir\appWORKDIR/app

ONBUILDCOPYpackage.jsonpackage.jsonONBUILD

显示全部
相似文档