内容简介: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文件?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 软件工程造价估算标准》编制工作全面展开
- ATTCK-PenTester-Book:根据ATT&CK知识体系编制出长达400页的渗透手册
- Scala在资源文件夹中获取文件的文件路径
- Go语言的文件操作:文件的读写,文件的新建打开和删除
- 安卓文件存储/文件读写操作
- 文件上传之秒传文件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Introduction to Linear Optimization
Dimitris Bertsimas、John N. Tsitsiklis / Athena Scientific / 1997-02-01 / USD 89.00
"The true merit of this book, however, lies in its pedagogical qualities which are so impressive..." "Throughout the book, the authors make serious efforts to give geometric and intuitive explanations......一起来看看 《Introduction to Linear Optimization》 这本书的介绍吧!