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进行安装.安装 ...
随机推荐
- Pandas:从CSV中读取一个含有datetime类型的DataFrame、单项时间数据获取
前言 有一个CSV文件test.csv,其中有一列是datetime类型,其他列是数值列,就像下边这样: 问题 1.读取该CSV文件,把datetime列转换为datetime类型,并将它设置为索引列 ...
- IIS部署遇到问题(没有相关资源/权限不足无法读取配置文件)及解决方法
1:找不到web.config,如下图: 解决办法: 点击目录浏览--打开功能--启用(应用),再次浏览解决 2:再次预览出现别的错误500.19,权限不足,如下图: 解决办法:(右键编辑权限或者右上 ...
- JZ-059-按之字形顺序打印二叉树
按之字形顺序打印二叉树 题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 题目链接: 按之字形 ...
- LeetCode-102-二叉树的层序遍历
二叉树的层序遍历 题目描述:给你一个二叉树,请你返回其按 层序遍历 得到的节点值. (即逐层地,从左到右访问所有节点). 示例说明请见LeetCode官网. 来源:力扣(LeetCode) 链接:ht ...
- 震撼的Linux全景图:业界成熟的内核架构长什么样?
1)Linux怎么来的? Linus 为了方便访问大学服务器中的资源 ,在自己的机器上写了一个文件系统和硬盘驱动,这样就可以把自己需要的资源下载到自己的机器中.随后linus把这款操作系统雏形开源,成 ...
- vcpkg 换源
vcpkg 的下载速度饱受诟病已久,但是并不见官方团队的动作,虽然有人提了 issue,但是提交的代码并不符合要求. 我自己在下载包的时候,特别是在下载位于 github 的包时,下载直接中断,所以我 ...
- webgl未使用独立显卡报告
0x00 楔子 最近客户在使用我们的的三维可视化平台的时候,总是会出现浏览器崩溃,webgl context lost的情况. 这种请一般出现在电脑配置很低的电脑上,比如没有独显,只有很小现存的集成显 ...
- laravel json封装
目录文件下新建一个BaseConttoller控制器 <?php namespace App\Http\Controllers\Task\Task13; use App\Http\Control ...
- 微信小程序清除缓冲
1:wxml定义一个清除缓冲的按钮,并绑定触摸事件 <button bindtap="clear">清空缓冲</button> 2:wxjs定义方法: // ...
- 这个好玩又实用的jupyter插件我真的爱了
1 简介 最近在逛github的时候偶然发现一款特别的jupyter插件stickyland,通过它我们可以在jupyter中以一种非常特别的交互操作方式,对我们的的代码单元格进行组织和展示,今天的文 ...