ASP.NET Core 网站在Docker中运行

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

本文介绍如何把ASP.NET Core网站部署在Docker中运行。

软件环境清单

CentOS 7.3.1611
Docker 1.12.6
.NET Core 1.1

安装Docker

$ #安装Docker$ yum install docker
$ #启动docker服务$ systemctl  start docker.service
$ #配置开机启动$ systemctl  enable docker.service

配置Docker加速器

由于众所周知的原因,要想流畅地使用Docker,需要配置Docker加速器,否则你会觉得回到了拨号上网的时代。
我使用的是DaoCloud,号称永久免费。注册地址是:https://account.daocloud.io/signin。

用微信扫一扫就可以快速完成注册。
注册完成会提供有一个配置脚本地址:

$ #配置docker加速器$ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s
http://xxxxxx.m.daocloud.io

$ #重启生效$ systemctl restart docker

拉取ASP.NET Core镜像

$ docker pull microsoft/aspnetcore
$ #检查是否成功$ docker images

准备ASP.NET Core网站发布文件

可以参考我之前的文章:ASP.NET Core 网站发布到Linux服务器

创建Dockerfile

放到网站根目录,文件内容参考如下:

FROM docker.io/microsoft/aspnetcoreCOPY ./publishWORKDIR /publish    EXPOSE 8080CMD ["dotnet", "TestAspNetCoreWeb.dll"]

打包镜像

$ #注意最后有个点。$ docker build -t test-netcore:1.0 .

启动容器

$ docker run --name test-netcore -p 8080:8080 -d test-netcore:1.0$ #检查容器是否启动成功$ docker ps 


网站运行成功。

配置过程我遇到容器启动失败的两个情况:
1.网站的监听使用了ip,报错“Error -99 EADDRNOTAVAIL address not available”
2.网站的监听使用了localhost,报错“curl: (56) Recv failure: Connection reset by peer”
最后发现使用http:*:8080来监听才成功。

docker run 失败后再次运行会提示名称已存在,可以使用docker rm -f [容器名称] 删除容器或换个名称。

原文地址:http://www.cnblogs.com/keepcodingforever/p/6698862.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/326001.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

键值存储之外,Redis还有这些用法

转载自 键值存储之外,Redis还有这些用法 Redis是一个强大的内存数据结构存储,包含数据库,缓存和消息代理等多种用途。大多数人经常认为它不过是一个简单的键值存储,但其实它有更多的能力。下面给出一些实例 1.全页面缓存 首先…

2018蓝桥杯省赛---java---C---3(字母阵列)

题目描述 测试数据 FOAIQNALWIKEGNICJWAOSXDHTHZPOLGYELORAUHOHCZIERPTOOJUITQJCFNIYYQHSBEABBQZPNGYQTCLSKZFCYWDGOAIADKLSNGJ GSOZTQKCCSDWGUWAUOZKNILGVNLMCLXQVBJENIHIVLRPVVXXFTHQUXUAVZZOFFJHYLMGTLANQIAOQQILCDCJERJASNCTLYGRMHGF TSDFYTLVIBHKLJVVJUDMKGJZGNNSTPVLCKT…

复习总结0111

1.从控制台中输入三个数,然后从小到大输出 public static void mian(String []args){Scanner sc new Scanner(System.in);System.out.println("请输入第一个数:");int a sc.nextInt();System.out.println("请输入第二个数:&…

sql基本命令整理

1、 查看数据库中的表或查询数据库; show tables/databases; 2、 查看数据库中所有的表 show tables;(前提是使用use database 数据库;) 3、 查看数据表结构 describe 表名; 4、 创建数据…

微软确认5月2日召开新品发布会 8天后就是Build 2017大会

援引外媒 ZDNet 报道,微软计划在 5 月上旬召开新品发布会,重点围绕着 Windows 10 Cloud,并且有望公布关于 Surface Pro 5 的相关信息。今天这条消息已经得到了证实,微软官方宣布将于 5 月 2 日将会在纽约召开发布会,也…

面试进阶之字符串常量池

转载自 面试进阶之字符串常量池 作为最基础的引用数据类型,Java 设计者为 String 提供了字符串常量池以提高其性能,那么字符串常量池的具体原理是什么,我们带着以下三个问题,去理解字符串常量池: 字符串常量池的设计…

java实现人脸识别V3版本开发

有段时间没有写更新公众号了,也许好多人都忘记了自己还关注了这么个公众号。因为这段时间确实是有其他的事比较忙,还有一个原因就是自己在技术方面没有学习新的东西,所以没有可更新的(包括博客)今天,我决定…

2018蓝桥杯省赛---java---A---7(三体攻击)

题目描述 题目:三体人将对地球发起攻击。为了抵御攻击,地球人派出了 A  B  C 艘战舰,在太空中排成一个 A 层 B 行 C 列的立方体。其中,第 i 层第 j 行第 k 列的战舰(记为战舰 (i, j, k))的生命值为 …

23种设计模式彩图

原文地址:http://www.jianshu.com/p/4a02646f7c9d.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

JDBC面试问题

转载自 JDBC面试问题 1.什么是JDBC API,何时使用它? Java DataBase Connectivity API允许我们使用关系数据库。JDBC API接口和类是 java.sql和javax.sql包的一部分。我们可以使用JDBC API来获取数据库连接,在数据库服务器中运行SQL查询和…

java实现人脸识别(使用百度云V3版本)

2017年,开发了第一个版本的人脸识别,当时费时有5天之久终于写出来了,但是只适用于火狐浏览器,别的浏览器都打不开摄像头。 2018年,将人脸识别重新完善,可以支持360、火狐、谷歌等主流浏览器,版…

2018蓝桥杯省赛---java---A---9(倍数问题)

题目描述 代码实现 package lanqiao;import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner;public class Main {public static void main(String[] args){Scanner scanner new Scanner(System.in);int n scanner.ne…

基于持久化的wordcount程序 foreachRDD

基于持久化的wordCount程序!中途遇到了一个坑! 自己手动封装一个静态线程池,使用RDD的foreachPartition操作,并且在该操作内部,从静态连接池中,通过静态方法,获取一个连接,使用之后…

HTML5知识点总结

 HTML5基础: 一、HTML: Hyper Text MarkUp Language(超文本标记语言)。 二、W3C: 1.world wide web consortium(万维网联盟),成立于1994年,WEB技术领域最权威和最具影响力的国际中立性技术标准机构。 2.w3c标准包括&…

漫画:什么是鸡尾酒排序

转载自 漫画:什么是鸡尾酒排序 那么,鸡尾酒排序又是何方神圣呢?我们这一期将会详细讲述。 让我们首先来回顾一下冒泡排序的思想: 冒泡排序的每一个元素都可以像小气泡一样,根据自身大小,一点一点向着数…

2018蓝桥杯省赛---java---A---10(付账问题)

题目描述 思路分析 用贪心算法,要使标准差最小,则需要将每个人需付的钱接近于平均值。如果有人的钱低于当前平均值a1,则需要将这人的钱全部支付,此人不够的钱需让其他人付,然后可以计算剩余人所需付钱的平均值a2&…

java基础的知识点(一)

 初始Java: 一、程序: 1.通常指完成某些事物的一种既定方式和过程。 2.计算机程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指定的集合。 二、java可以做什么: 1.开发桌面应用程序 2.开发网页应用程序 三、技…

想要学习设计模式,你得先会看类图,一张图读懂UML

虚线箭头指向依赖; 实线箭头指向关联; 虚线三角指向接口; 实线三角指向父类; 空心菱形能分离而独立存在,是聚合; 实心菱形精密关联不可分,是组合;

数据库的这些性能优化,你做了吗

转载自 数据库的这些性能优化,你做了吗 在互联网项目中,当业务规模越来越大,数据也越来越多,随之而来的就是数据库压力会越来越大。 我们可能会采取各种方式去优化,比如之前文章提到的缓存方案,SQL优化…

java知识点总结(二)

 复杂选择结构: 一、Switch的结构语法: switch(变量){ case 1: //代码 break; case 2: //代码 break; default : //代码 break; } 2.switch:相当于一个开关,后面的括号里面可以是int short byte char 枚举类型 Strin…