ASP.NET Core 2.1 使用Docker运行
1.新建一个 ASP.NET Core 2.1 项目
然后运行一下项目,确保我们刚刚建立的项目可以正常运行。
2.编写 Dockerfile
新建一个文本文件,命名为 Dockerfile
FROM microsoft/dotnet:2.1-aspnetcore-runtimeWORKDIR /appCOPY . .EXPOSE 80ENTRYPOINT ["dotnet", "AspNetCore.Docker.dll"]
这里我们需要用到官方的镜像:microsoft/dotnet:2.1-aspnetcore-runtime
如果要尝试更小的镜像,可以试试
microsoft/dotnet:2.1-aspnetcore-runtime-alpine
,这镜像使用了alpine
一款精简版极小的linux,但是随之而来的就是阉割了一些功能,实际使用的时候需要测试,比如国际化支持,它默认在这个镜像里面没有开启,需要配置环境变量来开启。
需要设置Dockerfile的如下属性,保证其能复制到发布目录:
3.构建Docker镜像
我们将镜像命名为 :aspnetcoredocker
进入到发布文件目录,执行命令便可打包镜像:
docker build -t aspnetcoredocker .
我们可以编写 发布+构建 的脚本。
Windows:
文件名:build.bat
@echo offecho "Windows Docker build"cd ../AspNetCore.Dockerdotnet publish -c Release -o ../publishcd ../publishecho "publish success"docker build -t aspnetcoredocker .
文件名:Linux:
build.sh
#!/bin/bashecho Linux Docker buildcd ../AspNetCore.Dockerdotnet publish -c Release -o ../publishcd ../publishecho publish successdocker build -t aspnetcoredocker .
文件夹结构如下图:
执行构建:
./build.sh
构建成功后可以通过 docker images
命令查询到我们构建的镜像:
若在linux下执行sh脚本时,遇到错误“-bash: ./build.sh: /bin/bash^M: bad interpreter: No such file or directory“,请通过vim/vi编辑sh脚本,按:建,输入
set ff=unix
,然后回车、wq保存即可
4.运行镜像
通过命令运行
docker run --name=aspnetcoredocker -p 7777:80 -d aspnetcoredocker
--name
:指定容器名称
-p
:指定容器端口
-d
:指定容器 后台运行
出现一长串字符串,便是表示运行成功:
我们也可以通过 docker ps
命令,查询我们正在运行的容器:
我们还可以通过 docker logs <容器名称或者id>来查看启动日志:
5.验证访问
我们可以通过 curl
命令来直接访问我们容器启动的asp.net core 网站:
或者直接通过浏览器访问:
至此,我们通过Docker运行asp.net core 2.1应用程序就结束了。
6.资料
本文所用代码:https://github.com/stulzq/BlogDemos/tree/master/AspNetCore.Docker
原文地址:https://www.cnblogs.com/stulzq/p/9201830.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
ASP.NET Core 2.1 使用Docker运行相关推荐
- 阿里云容器服务与ASP.NET Core部署:用 docker secrets 保存 appsettings.Production.json
这是我们使用阿里云容器服务基于 docker 容器部署 asp.net core 应用遇到的另一个问题 -- 如果将包含敏感信息的应用配置文件 appsettings.Production.json ...
- 可能是Asp.net Core On host、 docker、kubernetes(K8s) 配置读取的最佳实践
写在前面 为了不违反广告法,我竭尽全力,不过"最佳实践"确是标题党无疑,如果硬要说的话 只能是个人最佳实践. 问题引出 可能很多新手都会遇到同样的问题:我要我的Asp.net ...
- ASP.NET Core 实战:使用 Docker 容器化部署 ASP.NET Core + MySQL + Nginx
一.前言 在之前的文章(ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路)中,我介绍了如何在 Linux 环境中安装 .NET Core SDK / .NET Core ...
- ASP.NET Core 3.x启动时运行异步任务(一)
这是一个大的题目,需要用几篇文章来说清楚.这是第一篇. 一.前言 在我们的项目中,有时候我们需要在应用程序启动前执行一些一次性的逻辑.比方说:验证配置的正确性.填充缓存.或者运行数据库清理/迁移等 ...
- ASP.NET Core分布式项目实战(运行Consent Page)--学习笔记
任务21:运行Consent Page 修改 Config.cs 中的 RequireConsent 为 true,这样登录的时候就会跳转到 Consent 页面 修改 ConsentControll ...
- 深入研究 Mini ASP.NET Core,看看 ASP.NET Core 内部到底是如何运行的
几年前,Artech 老师写过一个 Mini MVC,用简单的代码告诉读者 ASP.NET MVC 内部到底是如何运行的.当时我研究完以后,受益匪浅,内心充满了对 Artech 老师的感激,然后用我自 ...
- ASP.NET Core 3.x启动时运行异步任务(二)
这一篇是接着前一篇在写的.如果没有看过前一篇文章,建议先去看一下前一篇,这儿是传送门 一.前言 前一篇文章,我们从应用启动时异步运行任务开始,说到了必要性,也说到了几种解决方法,及各自的优缺点.最 ...
- asp.net core linux环境,ASP.NET Core Linux环境安装并运行项目
如何更新Android SDK和Build Tool 1. 运行命令 android 2. 勾选并安装需要的版本 3. 完成! MSP430F149学习之路--按键 代码一: /*********** ...
- ASP.NET Core 网站在Docker中运行
Docker作为新一代的虚拟化方式,未来肯定会得到广泛的应用,传统虚拟机的部署方式要保证开发环境.测试环境.UAT环境.生产环境的依赖一致性,需要大量的运维人力,使用Docker我们可以实现一次部署, ...
最新文章
- 宏基因组教程Metagenomics Tutorial (HUMAnN2)
- 【干货合辑】+你有什么独家数据库优化技巧?
- Windows核心编程 第七章 线程的调度、优先级和亲缘性(下)
- c++ 不允许使用抽象类类型的对象_Java中日期API的使用总结
- [SQL使用经验]选用 IN 还是 EXISTS,哪个性能更好
- 《黑天鹅》读书笔记(part3)--那些声称注重过程而非结果的人并没有完全讲真话
- 1.redis单机部署
- 华为鸿蒙联合品牌,魅族官宣:接入华为鸿蒙!这是国产智能手机品牌的首个公开表态!...
- SQL Server 设计开发系列(文章索引)
- Python使用requests发送post请求
- 教务管理系统数据表关系图_Web技术——简易班级管理系统(框架)
- python使用wxpy轻松实现微信防撤回
- 求职季到来,你还在原地踏步吗?
- 更好地保护眼睛从现在做起!
- 浙大计算机学院考研复试上机试题,浙大计算机学院考研复试上机试题.doc
- 手把手教你搭建最新国产开源网络安全渗透测试集成靶场vulfocus
- 经典管理学定律3 - 鳄鱼法则
- PostgreSQL汉字转拼音
- 谷歌(百度)搜索的一些技巧
- SQLServer数据库镜像配置
热门文章
- 加密、解密以及Openssl建立私有CA
- 用C语言实现解析简单配置文件的小工具
- 【.NET 日常开发技巧】一个性能强悍的HttpClient 库
- 4. 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识wrk、wrk2
- 轻松实现深度Clone | Source Generators方式
- .NET 6新特性试用 | 无需配置开发人员异常页
- 笑说设计模式-小白逃课被点名
- AWS 宣布创建“真正”开源的 Elasticsearch 分支
- . NET5一出,. NET岗面试普遍喊难,真相是…
- Dapr微服务应用开发系列3:服务调用构件块