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运行相关推荐

  1. 阿里云容器服务与ASP.NET Core部署:用 docker secrets 保存 appsettings.Production.json

    这是我们使用阿里云容器服务基于 docker 容器部署 asp.net core 应用遇到的另一个问题 -- 如果将包含敏感信息的应用配置文件 appsettings.Production.json ...

  2. 可能是Asp.net Core On host、 docker、kubernetes(K8s) 配置读取的最佳实践

     写在前面 为了不违反广告法,我竭尽全力,不过"最佳实践"确是标题党无疑,如果硬要说的话 只能是个人最佳实践. 问题引出 可能很多新手都会遇到同样的问题:我要我的Asp.net ...

  3. ASP.NET Core 实战:使用 Docker 容器化部署 ASP.NET Core + MySQL + Nginx

    一.前言 在之前的文章(ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路)中,我介绍了如何在 Linux 环境中安装 .NET Core SDK / .NET Core ...

  4. ASP.NET Core 3.x启动时运行异步任务(一)

    这是一个大的题目,需要用几篇文章来说清楚.这是第一篇.   一.前言 在我们的项目中,有时候我们需要在应用程序启动前执行一些一次性的逻辑.比方说:验证配置的正确性.填充缓存.或者运行数据库清理/迁移等 ...

  5. ASP.NET Core分布式项目实战(运行Consent Page)--学习笔记

    任务21:运行Consent Page 修改 Config.cs 中的 RequireConsent 为 true,这样登录的时候就会跳转到 Consent 页面 修改 ConsentControll ...

  6. 深入研究 Mini ASP.NET Core,看看 ASP.NET Core 内部到底是如何运行的

    几年前,Artech 老师写过一个 Mini MVC,用简单的代码告诉读者 ASP.NET MVC 内部到底是如何运行的.当时我研究完以后,受益匪浅,内心充满了对 Artech 老师的感激,然后用我自 ...

  7. ASP.NET Core 3.x启动时运行异步任务(二)

    这一篇是接着前一篇在写的.如果没有看过前一篇文章,建议先去看一下前一篇,这儿是传送门   一.前言 前一篇文章,我们从应用启动时异步运行任务开始,说到了必要性,也说到了几种解决方法,及各自的优缺点.最 ...

  8. asp.net core linux环境,ASP.NET Core Linux环境安装并运行项目

    如何更新Android SDK和Build Tool 1. 运行命令 android 2. 勾选并安装需要的版本 3. 完成! MSP430F149学习之路--按键 代码一: /*********** ...

  9. ASP.NET Core 网站在Docker中运行

    Docker作为新一代的虚拟化方式,未来肯定会得到广泛的应用,传统虚拟机的部署方式要保证开发环境.测试环境.UAT环境.生产环境的依赖一致性,需要大量的运维人力,使用Docker我们可以实现一次部署, ...

最新文章

  1. 宏基因组教程Metagenomics Tutorial (HUMAnN2)
  2. 【干货合辑】+你有什么独家数据库优化技巧?
  3. Windows核心编程 第七章 线程的调度、优先级和亲缘性(下)
  4. c++ 不允许使用抽象类类型的对象_Java中日期API的使用总结
  5. [SQL使用经验]选用 IN 还是 EXISTS,哪个性能更好
  6. 《黑天鹅》读书笔记(part3)--那些声称注重过程而非结果的人并没有完全讲真话
  7. 1.redis单机部署
  8. 华为鸿蒙联合品牌,魅族官宣:接入华为鸿蒙!这是国产智能手机品牌的首个公开表态!...
  9. SQL Server 设计开发系列(文章索引)
  10. Python使用requests发送post请求
  11. 教务管理系统数据表关系图_Web技术——简易班级管理系统(框架)
  12. python使用wxpy轻松实现微信防撤回
  13. 求职季到来,你还在原地踏步吗?
  14. 更好地保护眼睛从现在做起!
  15. 浙大计算机学院考研复试上机试题,浙大计算机学院考研复试上机试题.doc
  16. 手把手教你搭建最新国产开源网络安全渗透测试集成靶场vulfocus
  17. 经典管理学定律3 - 鳄鱼法则
  18. PostgreSQL汉字转拼音
  19. 谷歌(百度)搜索的一些技巧
  20. SQLServer数据库镜像配置

热门文章

  1. 加密、解密以及Openssl建立私有CA
  2. 用C语言实现解析简单配置文件的小工具
  3. 【.NET 日常开发技巧】一个性能强悍的HttpClient 库
  4. 4. 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识wrk、wrk2
  5. 轻松实现深度Clone | Source Generators方式
  6. .NET 6新特性试用 | 无需配置开发人员异常页
  7. 笑说设计模式-小白逃课被点名
  8. AWS 宣布创建“真正”开源的 Elasticsearch 分支
  9. . NET5一出,. NET岗面试普遍喊难,真相是…
  10. Dapr微服务应用开发系列3:服务调用构件块