在发布ASP.NET Core网站以前,先介绍一下DaoCloud 一个免费的docker云容器服务平台。登陆官方网站,创建一台docker主机,这台主机有120分钟的使用时间,对于鄙人学习使用正好合适。这台docker主机一般是ubuntu主机,同时docker里面已经集成了一些镜像例如:mysql 、nginx等。

  1.获取microsoft/dotnet

  登陆这台主机,下载dotnet的镜像:docker pull microsoft/dotnet。如果有什么疑问大家可以移步(Docker 初步认识),由于是云主机所以下载速度很快,这也是鄙人为什么使用这个云主机的主要原因之一。
docker pull microsoft/dotnet

     下载完成以后使用命令:docker images 查看是否镜像下载成功。
docker images

2.运行 microsoft/dotnet-samples

   安装完成后,在容器中来运行一个测试的Application,下面是运行结果,这是microsoft写好的一个简单的.net core Dome。
docker run microsoft/dotnet-samples

  3.运行APS.Net core MVC

  需要下载安装dotnet core环境到主机,自己写一个简单的APS.Net core MVC,然后把这个做成一个镜像,然后运行这个镜像。

  上图是在主机中运行了 asp.net mvc 后的结果,说明创建的项目成功运行了。下面把这个asp.net mvc 制作成镜像发布到docker中。

        在制作镜像时我们需要创建Dockerfile,下文为VS为我们创建的Dockerfile 模板: 
#镜像来源为 microsoft/dotnet:1.1-runtime  分号后面表示版本信息
FROM microsoft/dotnet:1.1-runtime
#声明变量 在docker build创建镜像时 使用--build-arg 传入参数source
ARG source
#设置路径指令 相当于cd 切换到根目录/app路径下
WORKDIR /app
#复制指令 如果source创建是没有赋值,默认路径为obj/Docker/publish
COPY ${source:-obj/Docker/publish} .
#指定容器启动时执行的命令
ENTRYPOINT ["dotnet", "ConsoleApp1.dll"]
    Dockerfile基本语法,就大致说明一下,具体的大家需要去看官方文档
        1.用#注释代码
        2.命令是从上到下 逐条执行
        3.From指令告诉Docker使用哪个基础镜像
        4.后面是维护的一些说明信息
   在程序中创建的Dockerfile  镜像为microsoft/dotnet 切换到docker 的/app目录下  复制当前目录out到/app目录下,然后执行 dotnet app.dll 命令
FROM microsoft/dotnet:lastest
WORKDIR /app
COPY out .
ENTRYPOINT ["dotnet","app.dll"]
     发布重新生成的应用程序到out目录下:
dotnet restore
dotnet publish -c Release -o out

     制作成镜像同时运行应用程序,-p 设置访问端口 前面为主机端口 后面位docker容器端口,-e为设置环境变量 这里设置变量ASPNETCORE_URLS=http://+:80,-it 运行前台程序, -d表示运行后台容器,--rm表示运行完成退出时删除由这个镜像生成的容器实例,这里就直接删除了。
docker build -t app .
docker run -p 5000:80 -e "ASPNETCORE_URLS=http://+:80" -it --name test --rm app
     在外网访问一下,看到这个页面说明今天成功了。

 
 
 

docker 初识之二(简单发布ASP.NET Core 网站)的更多相关文章

  1. 发布ASP.NET Core网站到IIS

    打开VS2015,新建项目: 选择模板,取消身份验证: 项目加载完成后就可以运行了: 下面要发布到IIS: 需要安装从IIS到Kestrel server的反向代理,下载地址:.NET Core Wi ...

  2. ASP.NET Core 网站发布到Linux服务器

    长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台,这就使得.NET空有一身绝技但无法得到广大的施展空间,.N ...

  3. ASP.NET Core 网站发布到Linux服务器(转)

    出处;ASP.NET Core 网站发布到Linux服务器 长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台 ...

  4. 超简单!asp.net core前后端分离项目使用gitlab-ci持续集成到IIS

    现在好多使用gitlab-ci的持续集成的教程,大部分都是发布到linux系统上的,但是目前还是有很大一部分企业使用的都是windows系统使用IIS在部署.NET应用程序.这里写一下如何使用gitl ...

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

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

  6. 探索ASP.Net Core 3.0系列二:聊聊ASP.Net Core 3.0 中的Startup.cs

    原文:探索ASP.Net Core 3.0系列二:聊聊ASP.Net Core 3.0 中的Startup.cs 前言:.NET Core 3.0 SDK包含比以前版本更多的现成模板. 在本文中,我将 ...

  7. .Net Core 3 骚操作 之 用 Windows 桌面应用开发 Asp.Net Core 网站

    前言 曾经在开发 Asp.Net 网站时就在想,为什么一定要把网站挂到 IIS 上?网站项目的 Main 函数哪儿去了?后来才知道这个 Main 函数在 w3wp.exe 里,这也是 IIS 的主进程 ...

  8. ASP.NET CORE网站部署到 windows server 的IIS 上去

    章基于我自己经验的一个总结,在windows服务器上部署asp.net core网站.环境是 windows server 2012数据中心版本 第一步先安装 IIS 服务器 接下来就是一路下一步,然 ...

  9. docker 安装jenkins 发布 asp.net core 2.0

    安装Docker 其实安装Docker的过程,大家可以到Docker官网找到自己相对应的安装文档进行安装,Docker区分CE和EE的两个版本,具体这两个版本有什么区别,大家自行查阅相关资料,这里不再 ...

随机推荐

  1. ScheduledFuture和RunnableScheduledFuture详解

      ScheduledFuture java.util.concurrent 接口 ScheduledFuture<V> 类型参数:     V - 此 Future 返回的结果类型. 所 ...

  2. webapi “ObjectContent`1”类型未能序列化内容类型“application/xml; charset=utf-8”的响应正文。

    今天在来一发  webapi的一个知识点 相信用过webapi的对这个错误 已经看在眼里 痛在心里了把 我百度也搜了一下  看了一下   然后发现他们的解决办法 并没有什么软用. 然后想起来当时上学的 ...

  3. TableLayout

  4. hdu 1711---KMP

    题目链接 Problem Description Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...

  5. 关于QT按键信号槽的总结(原创)

    QT界面按钮一般是必填的: 每个按钮都要 Go to slot 下面有几个都是常用的,先说一下 clicked:pressed:releaed的区别 字面意思看:click是点击一下,pressed是 ...

  6. yum 安装rabbitMQ

    环境:linux centos6.5 1.安装erlang 下载rpm仓库:wget http://packages.erlang-solutions.com/erlang-solutions-1.0 ...

  7. EM算法原理总结

    EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域算法的基础,比如隐式马尔科夫算法(HMM), LDA主题模型的变分推断等等.本文就对 ...

  8. 写给Android App开发人员看的Android底层知识(7)

    (十二)ContentProvider (1)ContentProvider是什么? ContentProvider,简称CP. 做App开发的同学,尤其是电商类App,对CP并不熟悉,对这个概念的最 ...

  9. gulp+browserSync自动刷新页面

    BrowserSync “Browsersync能让浏览器实时.快速响应您的文件更改(html.js.css.sass.less等)并自动刷新页面.更重要的是 Browsersync可以同时在PC.平 ...

  10. python 2.7中urllib 2 与python 3.5中 urllib的区别。

    python 3.x中urllib库和urilib2库合并成了urllib库. 其中urllib2.urlopen()变成了urllib.request.urlopen() urllib2.Reque ...