先决条件

64位,内核3.10以上,查看当前的内核版本,打开一个终端使用uname -r显示您的内核版本

 
 

 
 

 
 

安装

sudo yum update

 
 

sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'

[dockerrepo]

name=Docker Repository

baseurl=https://yum.dockerproject.org/repo/main/centos/7/

enabled=1

gpgcheck=1

gpgkey=https://yum.dockerproject.org/gpg

EOF

 
 

 
 

 
 

安装docker

sudo yum install docker-engine

 
 

 
 

启动docker

sudo service docker start

 
 

验证docker已正常安装

 
 

安装.net core 镜像

https://hub.docker.com/r/microsoft/dotnet/

 
 

 
 

新建文件Dockerfile ,并修改内容

 
 

 
 

文件内容

#基于`mcrosoft/dotnet:1.0.0-core` 来构建我们的镜像

FROM microsoft/dotnet:1.0.0-core

 
 

#拷贝项目publish文件夹中的所有文件到 docker容器中的publish文件夹中

COPY . /publish

#设置工作目录为 `/publish` 文件夹,即容器启动默认的文件夹

 
 

WORKDIR /publish

 
 

#设置Docker容器对外暴露60000端口

EXPOSE 60000

 
 

#使用`dotnet MyApp.TestCore.dll`来运行应用程序

 
 

CMD ["dotnet", "MyApp.TestCore.dll"]

 
 

 
 

 
 

 
 

构建镜像

docker build -t my-dotnet-app .

 
 

注意最后有个.

如果创建失败,需要vpn才可以,这一步我试了几次总有超时,就找了个vpn再次构建就成功了

 
 

 
 

运行

docker run --name my-dotnet-app -d -p 60000:60000 my-dotnet-app

 
 

测试站点

 
 

失败了,报curl: (56) Recv failure: Connection reset by peer

 
 

参考解决办法:http://stackoverflow.com/questions/27806631/docker-rails-app-fails-to-be-served-curl-56-recv-failure-connection-reset

 
 

修改程序如下:添加UseConfiguration

var configuration = new ConfigurationBuilder()

.AddCommandLine(args)

.Build();

 
 

var host = new WebHostBuilder()

.UseKestrel()

.UseContentRoot(Directory.GetCurrentDirectory())

.UseConfiguration(configuration)

.UseIISIntegration()

.UseStartup<Startup>()

.Build();

 
 

host.Run();

 
 

发布程序

修改Dockerfile 文件如下

 
 

 
 

FROM microsoft/dotnet:1.0.0-core

 
 

COPY . /publish

 
 

WORKDIR /publish

 
 

EXPOSE 5003

 
 

CMD ["dotnet", "MyApp.TestCore.dll","--server.urls", "http://*:5003"]

 
 

重新构建镜像

 
 

sudo docker build -t dotnetapp .

 
 

 
 

运行并查看

sudo docker run --name dotnetapp -d -p 5003:5003 dotnetapp

 
 

 
 

测试站点

 
 

 
 

api返回数据,成功

防火墙开放端口

$ sudo firewall-cmd --zone=public --add-port=5003/tcp --permanent
$ sudo firewall-cmd --reload

 
 

 
 

说下遇到的问题:

1.构建镜像时由于网络原因,试了好几次都没有成功,需要找个vpn

2.curl: (56) Recv failure: Connection reset by peer 这个错误,.net core默认创建的站点绑定的是localhost这个需要修改站点绑定方式,通过添加

UseConfiguration或UseUrls方式修改默认站点的绑定

 
 

 
 

 
 

 
 

 
 

 
 

Centos 7 ASP.NET Core 1.0 Docker部署的更多相关文章

  1. 基于VS2017的Docker Support体检ASP.NET Core站点的Docker部署

    最近在学习如何用 Docker 部署生产环境中的 ASP.NET Core 站点,作为一个 Docer 新手,从何处下手更容易入门呢?一开始就手写 Docker 配置文件(Docfile, docke ...

  2. ASP.NET Core 2.0发布/部署到Ubuntu服务器并配置Nginx反向代理

    原文链接https://www.linuxidc.com/Linux/2017-12/149557.htm ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用AS ...

  3. ASP.NET Core:ASP.NET Core程序使用Docker部署

    一.前言 这篇文章介绍如何将一个ASP.NET Core应用程序在Docker中进行部署.开发工具使用的是Visual Studio 2019和VS Code. 二.使用Docker部署 我们选择新建 ...

  4. 使用Linux、Nginx和Github Actions托管部署ASP.NET Core 6.0应用

    使用Linux.Nginx和Github Actions托管部署ASP.NET Core 6.0应用 前言 本文主要参考微软这篇文档而来 Host ASP.NET Core on Linux with ...

  5. Centos7 & Docker & Jenkins & ASP.NET Core 2.0 自动化发布和部署

    写在前面 Docker一直很火热,一直想把原本的Jenkins自动部署工具搬到Docker上面,无奈今年一直忙于各种事情,迟迟未实施这个事情,正好迎来了dotnet core 2.0 的正式发布,升级 ...

  6. ASP.NET Core 3.0 : 二十八. 在Docker中的部署以及docker-compose的使用

    本文简要说一下ASP.NET Core 在Docker中部署以及docker-compose的使用  (ASP.NET Core 系列目录). 系统环境为CentOS 8 . 打个广告,求职中.. 一 ...

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

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

  8. 记一次Docker中部署Asp.Net Core 3.0的踩坑过程

    最近公司打算重构目前直销报单系统到微信小程序中,目前的系统只能在PC上面使用,这两年也搞过App端,但是由于人员流动和公司架构调整最后都不了了之,只留下一堆写了一半的接口.以前的接口依然是使用Asp. ...

  9. 将 ASP.NET Core 1.0 应用作为 docker 镜像发布 (Linux版)

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

随机推荐

  1. javascript--Object

    概述 (1)定义 对象(object)是JavaScript的核心概念,也是最重要的数据类型.JavaScript的所有数据都可以被视为对象. 简单说,所谓对象,就是一种无序的数据集合,由若干个&qu ...

  2. 修改thinkphp路由模式,去掉Home

    第一步:入口文件增加 define('BIND_MODULE', 'Home'); 第二步:修改config文件,我这里路由模式设置为2 效果展示:

  3. 让.NET 4.0支持TLS1.2协议

    The default System.Net.ServicePointManager.SecurityProtocol in both .NET 4.0/4.5 is SecurityProtocol ...

  4. PDF.NET SOD 开源框架红包派送活动 && 新手快速入门指引

    一.框架的由来  快速入门 有关框架的更多信息,请看框架官方主页! 本套框架的思想是借鉴Java平台的Hibernate 和 iBatis 而来,兼有ORM和SQL-MAP的特性,同时还参考了后来.N ...

  5. oracle RAC的VIP和scan

    我们都知道Oracle RAC中每个节点都有一个虚拟IP,简称VIP,与公网IP在同一个网段. 没有VIP时,Oracle客户端是靠"TCP/IP协议栈超时"来判断服务器故障.而T ...

  6. jQuery+turn.js翻书、文档和杂志3种特效演示

    很好用的一款插件jQuery+turn.js翻书.文档和杂志3种特效演示 在线预览 下载地址 实例代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...

  7. 分享25个新鲜出炉的 Photoshop 高级教程

    网络上众多优秀的 Photoshop 实例教程是提高 Photoshop 技能的最佳学习途径.今天,我向大家分享25个新鲜出炉的 Photoshop 高级教程,提高你的设计技巧,制作时尚的图片效果.这 ...

  8. 常用的css命名规则

    头:header 内容:content/container 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wrapper 左右中:left rig ...

  9. angularJs , json,html片段,bootstrap timepicker angular

    css .demotest { width: %; height: auto; overflow: auto; position: relative; margin: auto; margin-top ...

  10. Navigator对象、Screen对象

    Navigator对象:         Window对象的navigator属性引用的是包含浏览器厂商和版本信息的Navigator对象:   Navigator对象集合:plugins[] 返回对 ...