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进行安装.安装 ...
随机推荐
- Spark on Yarn出现hadoop.compression.lzo.LzoCodec not found问题发现及解决
问题描述: spark.SparkContext: Created broadcast 0 from textFile at WordCount.scala:37 Exception in threa ...
- c/c++ 日常积累
基类是抽象类,有(纯)虚函数,子类必须要把所有的都实现啊啊啊!!!!包括子类的析构,你写一个~xx类 = default;也好啊啊啊啊啊啊啊,不然报错!!!!啊啊啊啊啊 流下了悔恨的泪水!!!... ...
- SVN库文件上传操作步骤
SVN库文件上传步骤: 1,sv st 或 svn status 查看本地库与远程库的差别(M代表文件有修改,?代表目录中有文件本地新增加) 2,根据1步骤中的查看结果:svn diff 差异文 ...
- 关于Web的一些知识,Web怎么构成?
前端学习:学习地址:黑马程序员pink老师前端入门教程,零基础必看的h5(html5)+css3+移动,下面这些都是一些学习笔记.临渊羡鱼,不如退而结网!!愿我自己学有所成,也愿每个前端爱好者学有所成 ...
- springboot----四、yaml配置注入
四.yaml配置注入 4.1.配置文件 SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的 application.properties 语法结构 :key=value applic ...
- Hystrix&Dashboard配置使用
目录 Hystrix是什么 熔断 什么是熔断 熔断类型 打开 半开 关闭 使用方法 导包 添加启动注解 新增方法 测试 降级 什么是降级 使用方法 导包 修改yml,新增如下 启动类新增注解 @Ena ...
- laravel7 下拉搜索
html:页面 首先给下拉框一个页面改变事件,将下拉框的值发送至后台,进行查询 <select name="interest" id="serarch" ...
- PHP魔术方法11种
1.构造函数:__construct(): 构造函数是类中的一个特殊函数,当我们使用new关键字实例化对象时,相当于调用了类的构造函数. function __construct($name){ $t ...
- Redis常用命令代码实例集合
//连接本地的 Redis 服务 $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->auth('12345 ...
- 关于mysql8.0 caching_sha2_password和sha256_password认证方式
今天开发上线新系统反馈数据库连接有问题.自己分别在命令行下及navicat进行连接发现,发现root用户密码在命令行下可以正常连接,但是新建立的子用户连接不上.于是就换成管理员密码.立即就连接上了.看 ...