安装Docker环境

参考本人这篇《CentOS 7 下Docker的安装》文章进行安装以及环境配置,这里不做赘述。

通过.NetCore开发WebApi项目

1. 创建.Net Core Web项目,如下图所示:

这里我们选择Web API模板进行项目创建,为了简单起见,我们不做身份验证,也不选择 Host in cloud,点击ok项目及创建好

默认的项目文件结构如图所示:

在cmd 执行dotnet restore 恢复依赖包

运行项目,在浏览器就可以查看到结果

至此,一个简单的.Net Core开发的Web API项目就做好了

现在我们就把它放到Docker中运行。

Docker中运行

1. 首先我们先修改一下项目文件,主要是Program.cs和project.json

在Program.cs文件中加 .UseUrls("http://*:9001")是为了让来自所有IP的请求都可以访问这个API,当然也可以写成.UseUrls("http://0.0.0.0:9001") 作用一样,9001是公布出去的端口号。

另外一个修改的文件就是project.json,注释掉type那行以及scripts。添加

"runtimes": {
    "debian.8-x64": { }
  }

因为我这里代码目标运行的机器是debian系统的docker镜像,所以runtimes写成了debian.8-x64。你可以按照你实际情况配置

2. 发布程序到文件系统

发布成功后,会在项目目录下面生成发布好的文件

将发布成功的文件打个压缩包,上传到Linux机器上,并且解压到一个目录中, 进入到这个目录中

新建一个Dockerfile文件 <touch Dockerfile>, 这个文件的作用是构建一个Docker运行镜像。其中所需要填写的内容如下:


 FROM microsoft/dotnet:latest

 RUN mkdir -p /usr/src/app/DockerTest

 COPY . /usr/src/app/DockerTest

 WORKDIR /usr/src/app/DockerTest

 EXPOSE 

 CMD ["dotnet", "DockerTest.dll", "--server.urls", "http://*:9002"]
上面内容第1行代表在microsoft/dotnet:latest基础上面构建Docker镜像(这个微软dotnet镜像是以debian系统构建生成的)

第2行是表示新建一个DockerTest目录

第3行是将当前目录下面的所有文件都复制到刚才新建的DockerTest目录下面

第4行是将程序工作目录切换到DockerTest

第5行是将9002端口公布出去

第6行是执行dotnet DockerTest.dll 命令

Dockerfile文件编辑好后,执行docker build -t docker_test . 如下图所示生成docker_test镜像文件

通过docker images命令可以查看刚才新建的docker_test镜像

运行docker_test镜像创建出来的容器

通过浏览器访问此docker容器Host起来的service

在Docker容器中运行.Net Core web Api项目的更多相关文章

  1. Docker容器中运行ASP.NET Core

    在Linux和Windows的Docker容器中运行ASP.NET Core 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott Hanselman就捷足先登了. ...

  2. .Net Core 3.0 的 docker 容器中运行 无法 访问 Oracle数据库

    .Net  Core 3.0 的 docker 容器中运行 无法 访问 Oracle数据库  , 一直报下面的错误 ORA-00604: error occurred at recursive SQL ...

  3. .NetCore下使用IdentityServer4 & JwtBearer认证授权在CentOS Docker容器中运行遇到的坑及填坑

    今天我把WebAPI部署到CentOS Docker容器中运行,发现原有在Windows下允许的JWTBearer配置出现了问题 在Window下我一直使用这个配置,没有问题 services.Add ...

  4. 一个docker容器中运行多个服务还是弄一堆docker容器运行?

    不建议直接在单个 Docker 容器中运行多个程序. 以 2017年 10 月18 日 Docker 官方支持 Kubernetes 为分水岭计算,Kubernetes 赢得容器编排之战的最终胜利已经 ...

  5. 在docker容器中运行hello world!

    在docker容器中运行hello world! docker容器可以理解为在沙盒中运行的进程.这个沙盒包含了该进程运行所必须的资源,包括文件系统.系统类库.shell 环境等等.但这个沙盒默认是不会 ...

  6. Elasticsearch核心技术(1)--- Docker容器中运行ES、Kibana、Cerebro

    Docker容器中运行ES,Kibana,Cerebro和Logstash安装与数据导入ES 想加强ES有关的知识,看了阮一鸣老师讲的<Elasticsearch核心技术与实战>收获很大, ...

  7. docker_facenet_image在Docker容器中运行Facenet环境搭建

    对开发和运维人员来说,可能最梦寐以求的就是一次性地创建或配置,可以在任意环境.任意时间让应用正常运行.而Docker恰恰是可以实现这一终极目标的瑞士军刀. 具体来说,Docker在开发和运维过程中,具 ...

  8. 详解Net Core Web Api项目与在NginX下发布

    前言 本文将介绍Net Core的一些基础知识和如何NginX下发布Net Core的WebApi项目. 测试环境 操作系统:windows 10 开发工具:visual studio 2019 框架 ...

  9. 在Linux和Windows的Docker容器中运行ASP.NET Core

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott H ...

随机推荐

  1. 2017-5-18 Repeater 重复器的使用

    Repeater - 重复器HeaderTemplate - 先执行,执行一次FooterTemplate - 最后执行,执行一次ItemTemplate - 在Header之后执行,有多少条数据绑定 ...

  2. 【翻译】光速React – Vixlet

    翻译原文链接:https://blog.vixlet.com/react-at-light-speed-78cd172a6411 个人翻译小站链接:http://www.zcfy.cc/article ...

  3. 选择排序——Python实现

    选择排序: 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小( ...

  4. react 热替换 ([HMR])

    react 热替换 ([HMR]) 热替换好多地方可以用到,目前比较流行的用法是搭配React和webpack实现在不刷新页面的情况下对模块的增删改.在给项目添加热替换功能的时候,可以说是踩了各种坑, ...

  5. python标准库]Hashlib

    hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法. 在学习hashlib模块之前,先来看 ...

  6. Unity3D常用 API 之 Invoke 函数调用

    1.金钱副本细节完善 1.1.宝箱自动掉落 给宝箱预制体添加刚体组件即可. 1.2.实现按键宝箱批量掉落 ①将实例化生成宝箱的代码单独封装成一个函数: ②使用 for 循环,批量生成宝箱. 按一次z键 ...

  7. Java类的装载过程和静态代码块

    在Java中,类装载器把一个类装入Java虚拟机中,要经过三个步骤来完成:装载.连接和初始化,其中连接又可以分成校验.准备和解析三步,除了解析外,其它步骤是严格按照顺序完成的,各个步骤的主要工作如下: ...

  8. 微信 python 接口 -- itchat 文档

    itchat 一. 安装 $ pip install itchat 特殊的字典使用方式 通过打印 itchat 的用户以及注册消息的参数, 可以发现这些值都是字典. 但实际上 itchat 精心构造了 ...

  9. 题解 最优的挤奶方案(Optimal Milking)

    最优的挤奶方案(Optimal Milking) 时间限制: 1 Sec  内存限制: 128 MB 题目描述 农场主 John 将他的 K(1≤K≤30)个挤奶器运到牧场,在那里有 C(1≤C≤20 ...

  10. PHP+MySql实现后台数据的读取

      我们使用的是PHP 的php_mysqli扩展   首先了解一些基础的用法  1.连接数据库使用 mysqli_connect()  参数:①主机地址 ②MYSQL用户名 ③MYSQL密码 ④选择 ...