运行 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. head内部标签(常用部分)

    1.meta标签: <meta charset="utf-8" /> 2 <meta name="keywords" content=&quo ...

  2. sea.js教程

    转载自:http://blog.codinglabs.org/articles/modularized-javascript-with-seajs.html 前言 SeaJS是一个遵循CommonJS ...

  3. 添加全局函数$.extend和对象方法$.fn

    ## $(function () { $.fn.shadow = function (opts) { return this.each(function () { var defaults = { / ...

  4. android include使用[转]

    需要包含的xml文件,我这里就放了一个Button按钮: btn.xml: <?xml version="1.0" encoding="utf-8"?&g ...

  5. (转)转一份在 51testing 上的讨论——如何测试一个门户网站是否可以支持10万用户同时在线?

    转自:http://www.cnblogs.com/jackei/archive/2006/11/16/561846.html 这个帖子的内容比较典型,大家有兴趣可以也思考一下. 先是楼主提出问题: ...

  6. Codeforces812C Sagheer and Nubian Market 2017-06-02 20:39 153人阅读 评论(0) 收藏

    C. Sagheer and Nubian Market time limit per test 2 seconds memory limit per test 256 megabytes input ...

  7. WP8整合Bing应用,生活有求Bing

    在Windows 8中,Bing应用一直随系统而存在,提供多样化的资讯.它们是我的“御用”App,因为可以根据我的使用习惯对应用进行定制. 在Windows Phone 8系统第三次官方更新之后, B ...

  8. Navicat连接mysql8.0.1版本出现1251--Client does not support authentication protocol requested by server的解决

    转载自:https://blog.csdn.net/XDMFC/article/details/80263215 好不容易安装好mysql,但又出现了mysql客户端版本太低的问题.根据参考的这篇博客 ...

  9. 美团基于STORM的应用

    https://my.oschina.net/dolphinboy/blog/2933843

  10. Java 理论与实践: 用弱引用堵住内存泄漏

    弱引用使得表达对象生命周期关系变得容易了 虽然用 Java™ 语言编写的程序在理论上是不会出现“内存泄漏”的,但是有时对象在不再作为程序的逻辑状态的一部分之后仍然不被垃圾收集.本月,负责保障应用程序健 ...