Dockerize an ASP.NET Core application
原文:Dockerize an ASP.NET Core application
介绍
本示例演示了如何对ASP.NET Core应用程序进行容器化。
为什么要构建ASP.NET Core?
- 开源
- 在Windows、MacOS和Linux上跨平台开发和运行ASP.NET Core应用
- 非常适合现代基于云的应用程序,例如Web应用程序,IoT应用程序和移动后端
- ASP.NET Core应用程序可以在.NET Core或完整的.NET Framework上运行
- 旨在为部署到云或本地运行的应用程序提供优化的开发框架
- 具有最小开销的模块化组件可在构建解决方案时保持灵活性
先决条件
本示例假定您的计算机上已经有一个ASP.NET Core应用程序。如果您不熟悉ASP.NET,则可以按照一个简单教程来初始化项目或克隆我们的ASP.NET Docker示例。
为ASP.NET Core应用程序创建Dockerfile
- 在您的项目文件夹中创建一个
Dockerfile。 - 将以下文本添加到Linux或Windows容器的
Dockerfile中。以下标签是多体系结构的,这意味着它们会根据Docker Desktop for Windows中设置的模式拉入Windows或Linux容器。阅读有关切换容器的更多信息。 Dockerfile假定您的应用程序名为aspnetapp。将Dockerfile更改为使用项目的DLL文件。
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
- 要使构建上下文尽可能小,请将
.dockerignore文件添加到项目文件夹,然后将以下内容复制到其中。
bin/
obj/
构建并运行Docker映像
- 打开命令提示符,然后导航到您的项目文件夹。
- 使用以下命令来构建和运行您的Docker映像:
$ docker build -t aspnetapp。
$ docker run -d -p 8080:80 --name myapp aspnetapp
查看从容器运行的网页
- 转到localhost:8080在Web浏览器中访问您的应用程序。
- 如果您使用的是Nano Windows容器,但尚未更新至Windows Creator更新,则存在一个错误会影响Windows 10如何通过"NAT"(网络地址转换)与容器进行对话。您必须直接点击容器的IP。您可以通过以下步骤获取容器的IP地址:
- 运行
docker inspect -f“ {{.NetworkSettings.Networks.nat.IPAddress}}” myapp - 复制容器IP地址并粘贴到浏览器中。 (例如
172.16.240.197)
- 运行
进一步阅读
- ASP.NET Core
- Docker Hub上的Microsoft ASP.NET Core
- 为ASP.NET Core构建Docker映像
- Docker Tools for Visual Studio
Dockerize an ASP.NET Core application的更多相关文章
- First ASP.NET Core Application on a Mac Using Visual Studio Code
一直希望可以在mac上直接编写webapp (用C#)现在终于伴随着 core 世界美好了,不需要用pd windows了 nice. Visual studio code 更新1.1版本了 怀着激动 ...
- Dockerize a .NET Core application
Dockerize a .NET Core application Introduction This example demonstrates how to dockerize an ASP.NET ...
- ASP.NET Core 中文文档 第二章 指南(1)用 Visual Studio Code 在 macOS 上创建首个 ASP.NET Core 应用程序
原文:Your First ASP.NET Core Application on a Mac Using Visual Studio Code 作者:Daniel Roth.Steve Smith ...
- ASP.NET Core的Kestrel服务器
原文地址----Kestrel server for ASP.NET Core By Tom Dykstra, Chris Ross, and Stephen Halter Kestrel是一个基于l ...
- [转]Writing Custom Middleware in ASP.NET Core 1.0
本文转自:https://www.exceptionnotfound.net/writing-custom-middleware-in-asp-net-core-1-0/ One of the new ...
- [转]An introduction to OAuth 2.0 using Facebook in ASP.NET Core
本文转自:http://andrewlock.net/an-introduction-to-oauth-2-using-facebook-in-asp-net-core/ This is the ne ...
- 在Mac下运行ASP.NET Core应用程序
在Mac下运行ASP.NET Core应用程序 通过参照.NET Core相关官方文档,在我的Mac电脑上用Visual Studio Code创建了我的第一个ASP.NET应用. 开发环境搭建 首先 ...
- ASP.Net Core MVC6 RC2 启动过程分析[偏源码分析]
入口程序 如果做过Web之外开发的人,应该记得这个是标准的Console或者Winform的入口.为什么会这样呢? .NET Web Development and Tools Blog ASP.NE ...
- asp.net core开发环境准备
1.1 安装sdk和运行时 浏览器打开网址https://www.microsoft.com/net/download, 到.Net Core下载页面. 根据操作系统,下载对应的SDK进行安装.安装 ...
随机推荐
- ASP.NET Core 6框架揭秘实例演示[15]:针对控制台的日志输出
针对控制台的ILogger实现类型为ConsoleLogger,对应的ILoggerProvider实现类型为ConsoleLoggerProvider,这两个类型都定义在 NuGet包"M ...
- Java:输入输出、格式化输出
1.输出 都在System.out模块下,常用方法有: print:输出: println:输出并换行: printf:格式化输出: 2.格式化输出 格式化输出的方法是System.out.print ...
- Python音频操作+同时播放两个音频
对于python而言,音频的操作可以使用pygame包中的sound 和 music对象,本博客主要讲解这两个对象. 1.sound对象 Sound对象适合处理较短的音乐,如OGG和WAV格式的音频文 ...
- Windows原理深入学习系列-访问控制列表-关于安全描述符的补充
这是[信安成长计划]的第 20 篇文章 0x00 目录 0x01 安全描述符的结构 0x02 两个结构的不同点 0x03 真正的查询方案 0x04 参考文章 0x01 安全描述符的结构 在上一篇文章中 ...
- 矩池云上使用nohup和&让任务后台运行
1.nohup 用途:不挂断地运行命令. 语法:nohup Command [ Arg - ] [ & ] 无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup ...
- ASP.NET Core 简单集成签发 JWT (JSON Web Tokens)
什么是 JWT ? 从 https://jwt.io/ 可以了解到对 JWT 的描述:JSON Web Tokens are an open, industry standard RFC 7519 m ...
- es-kibana基本使用
- largebin attack
largebin attack 由这个名字就可以看出是对 largebin 进行的操作,需要的条件是存在 UAF 或者可以构造出 UAF.实现的功能是: 1.任意地址写入一个大数字 2.实现任意地址分 ...
- Oracle 11g中查询CPU占有率高的SQL
oracle版本:oracle11g 背景:今天在Linux中的oracle服务上,运用top命令发现许多进程的CPU占有率是100%. 操作步骤: 以进程PID:7851为例 执行以下语句: 方法一 ...
- bzoj5130 字符串的周期(kmp,最小表示法)
bzoj5130 字符串的周期(kmp,最小表示法) bzoj 题解时间 m很大,n很小. 周期很容易求,就是kmp之后n-fail[n]. 之后对于枚举所有的字符串用最小表示法,暴力搜索. 能过就完 ...