APP下载
报价宝  ›  科技  › 

Linux服务器使用Docker部署.net Core专案

报价宝 来源:baojiabao.com 发布时间:2019-07-11 01:48:00 09月15日更新
报价宝综合消息Linux服务器使用Docker部署.net Core专案

释出ASP.NET Core专案

和普通的专案释出一样,将专案释出到目标资料夹中

构建Dockerfile档案

在目标档案根目录新建Dockerfile档案(没有后缀)

FROM microsoft/dotnet//基于'microsoft/dotnet' 来构建映象

COPY . /app //拷贝专案资料夹中的所有档案到docker容器中的app资料夹 这里是两个引数

WORKDIR /app //设定工作目录为 '/app' 资料夹,即容器启动预设的资料夹

EXPOSE 80 //设定Docker容器对外暴露80埠

CMD ["dotnet", "Core.Web.dll"] //使用'dotnet Core. Web.dll'来执行应用程序

上传专案档案

1.将专案构建为映象

将档案上传到Linux的www目录下,使用命令构建成映象

docker build -t testcore . //-t 指定映象名 . 表示Dockerfile所在目录

注意 dockerfile中基于microsoft/aspnetcore或microsoft/dotnet来构建映象(dotnet>aspnetcore)需要以服务器上安装的映象版本做区分

构建成功,在映象中可以看到新建的映象

2.将映象释出为容器

docker run --name testapp -d -p 8000:80 -v /www:/app testcore

--name指定容器名称

-d 指定容器后台执行

-p 指定外部8000埠对映到容器80埠

-v 系结资料卷/www到容器内的/app (本地目录:容器内目录)本地目录必须为绝对路径

testcore映象名

3.检视容器是否是否处于执行状态,若启动失败显示为exit,可检视日志

docker ps -a //检视所有容器的执行状态

docker exec -it testapp bash //若容器正在执行,进入容器内部

docker logs testapp//若容器未执行,检视报错日志

4.请求网站检视网站是否执行成功

curl 0.0.0.0:8000

curl -s -D - localhost:8000 -o /dev/null //检视请求返回资讯

最后检视防火墙埠开放情况,以及阿里云后台安全组埠开放情况(如果你是用的阿里云服务),再通过外网访问瞅瞅

5.更新程式码

由于在建立容器的时候映射了资料卷,则当有静态档案更新的时候,会自动更新到容器内。

但是当有dll档案更新时,需要手动重启一下容器

docker restart testapp

以上,实现了将一个Asp.Net Core MVC专案释出到docker中的全过程。目前容器中只有一个dotnet映象,通过地址访问网站实际上直接访问的Kestrel服务器。

一些额外的想法

Kestrel服务器只是一个轻量级的web服务器,并且不支援基于主机名的系结(如果1台服务器部署了多个 ASP.NET Core 站点,每个站点需要使用不同的埠)

出于安全性考虑(包括但不限于适当的超时,大小的限制,以及并发连线限制等问题)需要在Kestrel和Internet之间加入一个反向代理服务器(IIS,Nginx或者Apache)

文章标签: 报价宝 降噪耳机价格 耳机价格 红米手机价格 华为手机价格 小米手机价格 电视机价格 笔记本电脑价格 笔记本价格 汽车价格 报价宝 手机价格 笔记本价格 华为手机价格 降噪耳机价格