码迷,mamicode.com
首页 > Web开发 > 详细

Centos 7 ASP.NET Core 1.0 Docker部署

时间:2016-09-28 09:46:35      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:

先决条件

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部署

标签:

原文地址:http://www.cnblogs.com/liuyuhua/p/5915040.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!