如何编制微软.Net Core的docker文件?

栏目: ASP.NET · 发布时间: 5年前

内容简介:Microsoft .NET核心的一个主要特性是它能够在多个操作系统(Linux,Mac,Windows)和容器化环境中作为跨平台框架运行。Microsoft努力继续支持容器化环境并增强CI / CD管道。为了帮助您入门,Microsoft根据常见用例提供了许多不同的docker镜像供您使用。在这篇文章中,我将讨论在.NET Core中使用容器和Dockerfiles。本质上,A Dockerfile是一个包含指令集的纯文本,每条指令都列出了创建工作镜像所需的步骤,.NET Dockerfile也是这样:

Microsoft .NET核心的一个主要特性是它能够在多个操作系统(Linux,Mac,Windows)和容器化环境中作为跨平台框架运行。Microsoft努力继续支持容器化环境并增强CI / CD管道。为了帮助您入门,Microsoft根据常见用例提供了许多不同的 docker 镜像供您使用。在这篇文章中,我将讨论在.NET Core中使用容器和Dockerfiles。

本质上,A Dockerfile是一个包含指令集的纯文本,每条指令都列出了创建工作镜像所需的步骤,.NET Dockerfile也是这样:

例如:设置环境变量,复制文件或运行脚本。无论何时运行指令,都会在初始Docker基础镜像之上创建一个新层。

Docker基础镜像是构建层的起始点镜像(通常由具有OS配置的文件系统结构组成),以创建所有容器镜像。

例如,为了将LAMP堆栈作为Docker容器运行,您可以使用Ubuntu 14.04或CentOS 7或任何Linux OS作为基本镜像。然后,您将在其上安装Apache,MySQL和PHP,结果将是您的最终LAMP Docker镜像,可以作为容器运行。

基本dockerfile示例:

FROM ubuntu:15.04
COPY . /app
RUN make /app
CMD python /app/app.py

FROM:从ubuntu:15.04 Docker镜像创建一个图层。

COPY:将项目当前目录中的(复制)文件添加到Docker主机路径中。

RUN:用make构建你的应用程序。

CMD:指定在容器中运行的命令。

Dockerfile命令

FROM: FROM指令指示基本镜像并初始化后续指令和操作的新构建阶段。对于.NET核心应用程序,选择正确的根镜像非常重要:

From microsoft/dotnet:<version>-runtime-deps -

用于部署自包含的部署应用程序(编译成DLL):

From microsoft/dotnet: <version>-runtime -

用于部署.NET Core控制台应用程序:

From microsoft/dotnet: <version>-aspnetcore-runtime -

用于部署ASP.NET核心应用程序(编译成DLL并运行应用程序):

From microsoft/dotnet: <version>-sdk

COPY: COPY指令从中复制新文件或目录 (项目根文件夹)并将它们添加到路径中容器的文件系统 (Docker主机路径)。通常,.NET docker文件位于项目根文件夹中,复制指令将是

COPY <src>... <dest>
COPY . /app

RUN: RUN指令将在当前镜像的顶部执行任何命令并继续执行下一条指令。生成的已提交镜像将用于Dockerfile中的下一步。可以使用RUN命令执行.NET核心命令,如dotnet restore,dotnet build命令。

RUN dotnet restore
RUN dotnet build

CMD :CMD命令是为执行容器提供默认值。Dockerfile中只能有一条CMD指令。如果列出多个CMD,则只有最后一个CMD才会生效。

ENTRYPOINT :Entrypoint允许您将配置一个容器为可执行的。

WORKDIR :WORKDIR指令为RUN,CMD,ENTRYPOINT,COPY和ADD指令的设置工作目录。如果WORKDIR不存在,即使它未在任何后续Dockerfile指令中使用,也将创建它。如果提供了相对路径,则它将相对于先前WORKDIR指令的路径。例如:

WORKDIR /app
WORKDIR src
WORKDIR assets

输出路径Dockerfile将是/ app / src / assets。

.NETcore docker文件

FROM microsoft/aspnetcore-build:2.1
WORKDIR /app
COPY . ./app
RUN dotnet restore
RUN dotnet build
WORKDIR /app/src/MyApponDocker
ENTRYPOINT dotnet run

构建它:在PowerShell中切换到上述配置文件所在目录,运行

docker build -t dockerApp

Docker现在将开始构建镜像,下载并安装多个组件和包。

运行Docker

构建成功后,运行:

docker run -p 8080:80 dockerApp

这告诉Docker运行名为dockerApp的镜像。

重要:

microsoft/dotnet:-runtime-deps - 用于部署自包含的部署应用程序

microsoft/dotnet:-runtime - 用于部署.NET核心控制台应用程序

microsoft/dotnet:-aspnetcore-runtime - 用于部署ASP.NET核心应用程序

microsoft/dotnet:-sdk - 用于构建.NET Core(或ASP.NET核心应用程序)

.NET Core SDK - 这是构建.NET Core应用程序所需的。

.NET Core Runtime - 这是运行.NET Core应用程序所需的。

结论

现在,dotnet的Docker使.net应用程序能够在容器化的环境中完全运行而无需任何代码更改。与容器化带来的优势相结合。


以上所述就是小编给大家介绍的《如何编制微软.Net Core的docker文件?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

设计冲刺

设计冲刺

[美] 杰克·纳普、[美] 约翰·泽拉茨基、[美] 布拉登·科维茨 / 魏瑞莉、涂岩珺 / 浙江大学出版社 / 2016-8 / 58.00元

Uber / Nest Lab / Medium / Gmail / Chrome 成功助推无数现象级产品的谷歌风投团队(Google Ventures)首次现身著述 雄踞《纽约时报》/《华尔街日报》/ 亚马逊书店三大畅销榜榜首 当选Inc.杂志2016年必读商业佳作 ------------------- ※内容简介※ 谷歌风投投资的公司每天都会面对各种至关重......一起来看看 《设计冲刺》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码