运行 Docker

C:\Users\Administrator>docker run -it  -p 5000:5000 --name myapidocker1 webapiv1

root@3b3e97bb6e21:/# dir

bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  test  tmp  usr  var

C:\Users\Administrator>docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES

3b3e97bb6e21        webapiv1            "bash"              9 seconds ago       Up 8 seconds        0.0.0.0:5000->5000/tcp   myapidocker1

deploy 编译后的dll,编译选项选择如下

D:\Work\My\opensource\Dotnet2\WebAPIForDocker\bin\Debug>docker cp netcoreapp2.1/publish myapidocker1:/test/api3

查看配置,注意linux 下sqlserver 端口号必须指定

root@3b3e97bb6e21:/test/api3/publish# cat appsettings.json

{

"Logging": {

"LogLevel": {

"Default": "Information"

}

},

"AllowedHosts": "*",

"ConnectionStrings": {

"DefaultConnection": "Max Pool Size = 51200;Server=localhost,1433;User ID=sa;Pwd=XXXXX;DataBase=Order;"

}

}

进入到容器

如果不小心关闭了,docker 的终端,再次进入docker

C:\Users\Administrator>docker exec -it myapidocker1 /bin/bash

root@3b3e97bb6e21:/# dir

bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  test  tmp  usr  var

运行 core

root@3b3e97bb6e21:/test/api3/publish# dotnet WebAPIForDocker.dll

info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]

User profile is available. Using '/root/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest.

Hosting environment: Production

Content root path: /test/api3/publish

Now listening on: http://[::]:5000

Application started. Press Ctrl+C to shut down.

打开另一个终端,在docker 内部访问

root@3b3e97bb6e21:/# curl http://localhost:5000/api/orders/getHostName

3b3e97bb6e21root@3b3e97bb6e21:/

3b3e97bb6e21root@3b3e97bb6e21:/# curl http://localhost:5000/api/orders/getOrderList

[{"item1":"ja201808204778560863744992601","item2":"08/20/2018 18:29:16"},{"item1":"201808205628636382300589946","item2":"08/20/2018 18:29:18"},{"item1":"201808205753427170575780018","item2":"08/20/2018 18:29:19"},{"item1":"201808204749312987745111125","item2":"08/20/2018 18:29:21"},{"item1":"201808204725778270582113008","item2":"08/20/2018 18:29:22"},{"item1":"201808204776350327734840932","item2":"08/20/2018 18:29:27"},{"item1":"201808205627318305959441050","item2":"08/20/2018 18:29:30"},{"item1":"201808205593544898683339668","item2":"08/20/2018 18:29:34"},{"item1":"201808205707984438836626731","item2":"08/20/2018 18:29:35"},{"item1":"201808205573431454844603206","item2":"08/20/2018 18:29:39"}]root@3b3e97bb6e21:/#

webAPI部分代码:

 

[Route("api/[controller]")]

public class OrdersController : Controller

{

private IConfigOptions m_configOptions;

private ILogger m_logger;

public OrdersController(IConfigOptions configOptions, ILogger<OrdersController> logger)

{

m_configOptions = configOptions;

m_logger = logger;

}

// GET api/values

[Route("[action]")]

[HttpGet]

public ActionResult<IEnumerable<Tuple<string, string>>> GetOrderList()

{

m_logger.LogDebug(" ConnectionString:" + m_configOptions.ConnectionString);

//Console.WriteLine(" ConnectionString:" + m_configOptions.ConnectionString);

List<Tuple<string, string>> list = new List<Tuple<string, string>>();

try

{

using (SqlConnection sqlCon = new SqlConnection(m_configOptions.ConnectionString))

{

sqlCon.Open();

string sql = "select top 10 * from [dbo].[Order]";

using (SqlCommand cmd = new SqlCommand(sql, sqlCon))

{

var reader = cmd.ExecuteReader();

while (reader.Read())

{

list.Add(new Tuple<string, string>(reader["orderNum"].ToString(), reader["InDate"].ToString()));

}

}

}

}

catch(Exception ex)

{

m_logger.LogError(ex, ex.Message, "Get");

}

return list;

}

// GET api/values/5

[Route("[action]")]

[HttpGet]

public ActionResult<string> GetHostName()

{

string hostName = Dns.GetHostName();

return hostName;

}

}

 

webAPI部分代码:

Docker 之web api 访问 host sql server的更多相关文章

  1. Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码)

    Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码) http://blog.csdn.net/helonsy/article/details/7207497 ...

  2. 使用php来访问操作sql server

    使用php来访问操作sql server 在此分成三步走: 第一部:查看配置,下载文件 首先查看自己的php和sql server版本 Php文件输入echo PHP_VERSION  运行脚本就可以 ...

  3. [ASP.NET Web API]如何Host定义在独立程序集中的Controller

    通过<ASP.NET Web API的Controller是如何被创建的?>的介绍我们知道默认ASP.NET Web API在Self Host寄宿模式下用于解析程序集的Assemblie ...

  4. ASP.NET Core Web API 索引 (更新Identity Server 4 视频教程)

    GraphQL 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(上) 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(下) [视频] 使用ASP.NET C ...

  5. 在Docker中体验数据库之Microsoft SQL Server

    前面记录了一下在docker中体验mongodb和mysql.今天记录一下mssql……其实早就体验了,就是没有记录,前几天看了一下2019的一些新闻,很喜欢Polybase这个特性,想体验一把,可惜 ...

  6. 使用unidac 在linux 上无驱动直接访问MS SQL SERVER

    随着delphi 10.2 开始了对Linux 的重新支持.devart 也迅速的发布了unidac 7.0, 最大的特性就是支持linux和MongoDB. 并有了其他更新: In this rel ...

  7. docker 远程rest api 访问配置

    Docker RestApi 的配置及使用 Centos Docker1.12 远程Rest api访问的配置方法 http restapiv1.24 docker sdk for python

  8. Docker URL REST API访问设置

    Docker daemon 绑定到该端口上. 默认情况下,docker daemon使用unix socket(unix:///var/run/docker.sock) 1.先停止docker dae ...

  9. Docker学习笔记之--安装mssql(Sql Server)并使用Navicat连接测试(环境:centos7)

    前一节演示如何使用Nginx反向代理 .net Core项目容器,地址:Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(二) ...

随机推荐

  1. springboot+cfx实现webservice功能

    一.开发服务端 1.新建工程 cfx-webservice ,最终的完整工程如下: pom.xml如下: <?xml version="1.0" encoding=" ...

  2. C++之基于排序方法求一组数的中位数

    中位数也就是中值: 故需要先对数组进行排序(选择,插入,冒泡排序),然后在找出数组的中值. //求中值 #include<iostream> using namespace std; in ...

  3. python的6种基本数据类型--集合

    特征 1.确定性(元素必须可hash) 2.互异性(去重) 3.无序性(集合中的元素没有顺序,先后之分) >>> s = {1,1,1,2,2,3,4,5,6,7} # 创建 > ...

  4. IntelliJ IDEA 2017版 spring-boot2.0.2 搭建 JPA springboot DataSource JPA 实体类浅谈

    一.实体类分析 一般用到的实体类的类型有 String类型.Long类型.Integer类型.Double类型.Date类型.DateTime类型.Text类型.Boolean型等 1.String类 ...

  5. urb的处理流程

      USB分析 2013年11月11日 16:06:24 阅读数:1807 转载自:http://blog.csdn.net/aaa6695798/article/details/4776202 很久 ...

  6. 轻松建立Silverlight开发环境

    创建Silverlight 4开发环境,微软提供最简单的方法是使用Web Platform Installer,进行“一键安装”, 下载安装后,Web Platform Installer会自动检测哪 ...

  7. 《深入浅出MFC》系列之运行时类型识别(RTTI)

    /********************************************************************************** 发布日期:2017-11-13  ...

  8. codeforces877c

    C. Slava and tanks time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  9. Hadoop读写流程

    写流程 读流程 HDFS写数据流程 HDFS读数据流程 网络拓扑-节点距离计算 节点距离:两个节点到达最近的共同祖先的距离总和

  10. AngularJS 路由及SPA理解

    一.路由及SPA理解 路由允许我们通过不同的 URL 访问不同的内容,可实现多视图的单页web应用(SPA);通常我们的URL形式为 http://runoob.com/first/page,但在单页 ...