ASP.NET Core 2.1 使用Docker运行的方法步骤

 更新时间:2018年07月04日 16:02:18   作者:晓晨Master  
这篇文章主要介绍了ASP.NET Core 2.1 使用Docker运行的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

1.新建一个 ASP.NET Core 2.1 项目

然后运行一下项目,确保我们刚刚建立的项目可以正常运行。

2.编写 Dockerfile

新建一个文本文件,命名为 Dockerfile

FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /app
COPY . .
EXPOSE 80
ENTRYPOINT ["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 off

echo "Windows Docker build"

cd ../AspNetCore.Docker

dotnet publish -c Release -o ../publish

cd ../publish

echo "publish success"

docker build -t aspnetcoredocker .

文件名:Linux:

build.sh

#!/bin/bash

echo Linux Docker build

cd ../AspNetCore.Docker

dotnet publish -c Release -o ../publish

cd ../publish

echo publish success

docker 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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • asp.net 事件与委托分析

    asp.net 事件与委托分析

    delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类。与其它的类不同,delegate类能够拥有一个签名(signature),并且它只能持有与它的签名相匹配的方法的引用。
    2009-02-02
  • MVC4制作网站教程第四章 删除栏目4.4

    MVC4制作网站教程第四章 删除栏目4.4

    这篇文章主要为大家详细介绍了MVC4制作网站教程,删除栏目功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • ASP.NET中使用IFRAME建立类Modal窗口

    ASP.NET中使用IFRAME建立类Modal窗口

    ASP.NET中使用IFRAME建立类Modal窗口...
    2006-09-09
  • 关于中gridview 字符串截取的方法

    关于中gridview 字符串截取的方法

    在Gridview中,如果你的某一列字符串的长度过长,不做处理的话.那么将显示的奇丑无比,可以采取设置样式,将其显示为定长,可以在点击查看的时候,在另一个页面对其进行显示
    2013-06-06
  • 用.NET做动态域名解析的方法示例

    用.NET做动态域名解析的方法示例

    这篇文章主要介绍了用.NET做动态域名解析的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • .Net整合Json实现REST服务客户端的方法详解

    .Net整合Json实现REST服务客户端的方法详解

    这篇文章主要给大家介绍了关于.Net整合Json实现REST服务客户端的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-01-01
  • asp.net代码中修改web.config节点的具体方法

    asp.net代码中修改web.config节点的具体方法

    在有些情况下,要在代码中读取一种全局变量,把这种全局变量放在web.config是一种常见的手段。
    2013-06-06
  • .NET微信公众号客服接口

    .NET微信公众号客服接口

    这篇文章主要为大家详细介绍了.NET微信公众号客服接口,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • .NET 缓存设计的使用说明

    .NET 缓存设计的使用说明

    缓存是提高应用程序性能的最好方法之一。运用缓存可以优化数据查询,避免不必要的网络数据回传,和避免执行不必要的完全相同的数据处理逻辑。
    2013-03-03
  • .NET+JS对用户输入内容进行字数提示功能的实例代码

    .NET+JS对用户输入内容进行字数提示功能的实例代码

    .NET+JS对用户输入内容进行字数提示功能的实例代码,需要的朋友可以参考一下
    2013-06-06

最新评论