在发布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. 初识hadoop-历史及其家族(日志一)

    1,书籍推荐: 2,Google技术带来的东西: 下一篇:JDK的安装级其中遇到的问题

  2. Ubuntu server搭建Java web服务器

    1. 在Ubuntu server中安装ssh,如果是购买服务器的话,这已经是安装的了,包括vim 获取超级权限 先更新安装包 开始安装ssh ssh已经启动了 2. 安装Xshell并创建连接安装X ...

  3. [刷题]算法竞赛入门经典(第2版) 4-5/UVa1590 - IP Networks

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,0 ms) //UVa1590 - IP Networks #include<iost ...

  4. GPIO控制LED

    一.LED灯的亮灭控制的配置步骤(GPIO4_D3): 1.GPIO4的CRU_CLKGATE_CON31时钟使能配置(用来保证GPIO4可写): io -4 0xff76037c 0xffff019 ...

  5. Visual Studio 2017 针对移动开发的新特性介绍

    欢迎大家持续关注葡萄城控件技术团队博客,更多更好的原创文章尽在这里~~ Visual Studio是世界上最好的IDE之一,如果是 .NET世界,那就没有之一了(^_^),而最近推出的Visual S ...

  6. 每天一道Java题[5]

    题目 String.StringBuilder.StringBuffer有什么异同? 解答 相同点:String.StringBuilder.StringBuffer都可以用来存储字符串. 不同点: ...

  7. Linux学习第二步(Java环境安装)

    jdk版本:jdk-8u131-linux-x64.rpm 注:以下操作在root用户或具有root权限的用户下操作 一.将 dk-8u131-linux-x64.rpm拷贝到/home目录下 cp ...

  8. 主机通过host-only虚拟网卡连接VBOX虚拟机

    主机通过host-only虚拟网卡连接VBOX虚拟机 How to set up host-only virtual machines that host can access it... 问题 因为 ...

  9. Mac OS 安装 Git 环境

    1. 在mac的终端上,输入git会提示安装git软件,确认安装.安装完成后打开终端,使用git --version或者which git命令查看安装版本,有就是安装成功了. 2. 创建一个全局用户名 ...

  10. 多线程之Parallel类

    Parallel类是对线程的一个抽象.该类位于System.Threading.Tasks名称空间中,提供了数据和任务并行性. Paraller类定义了数据并行地For和ForEach的静态方法,以及 ...