Docker 之web api 访问 host sql server
运行 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的更多相关文章
- Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码)
Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码) http://blog.csdn.net/helonsy/article/details/7207497 ...
- 使用php来访问操作sql server
使用php来访问操作sql server 在此分成三步走: 第一部:查看配置,下载文件 首先查看自己的php和sql server版本 Php文件输入echo PHP_VERSION 运行脚本就可以 ...
- [ASP.NET Web API]如何Host定义在独立程序集中的Controller
通过<ASP.NET Web API的Controller是如何被创建的?>的介绍我们知道默认ASP.NET Web API在Self Host寄宿模式下用于解析程序集的Assemblie ...
- ASP.NET Core Web API 索引 (更新Identity Server 4 视频教程)
GraphQL 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(上) 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(下) [视频] 使用ASP.NET C ...
- 在Docker中体验数据库之Microsoft SQL Server
前面记录了一下在docker中体验mongodb和mysql.今天记录一下mssql……其实早就体验了,就是没有记录,前几天看了一下2019的一些新闻,很喜欢Polybase这个特性,想体验一把,可惜 ...
- 使用unidac 在linux 上无驱动直接访问MS SQL SERVER
随着delphi 10.2 开始了对Linux 的重新支持.devart 也迅速的发布了unidac 7.0, 最大的特性就是支持linux和MongoDB. 并有了其他更新: In this rel ...
- docker 远程rest api 访问配置
Docker RestApi 的配置及使用 Centos Docker1.12 远程Rest api访问的配置方法 http restapiv1.24 docker sdk for python
- Docker URL REST API访问设置
Docker daemon 绑定到该端口上. 默认情况下,docker daemon使用unix socket(unix:///var/run/docker.sock) 1.先停止docker dae ...
- Docker学习笔记之--安装mssql(Sql Server)并使用Navicat连接测试(环境:centos7)
前一节演示如何使用Nginx反向代理 .net Core项目容器,地址:Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(二) ...
随机推荐
- head内部标签(常用部分)
1.meta标签: <meta charset="utf-8" /> 2 <meta name="keywords" content=&quo ...
- sea.js教程
转载自:http://blog.codinglabs.org/articles/modularized-javascript-with-seajs.html 前言 SeaJS是一个遵循CommonJS ...
- 添加全局函数$.extend和对象方法$.fn
## $(function () { $.fn.shadow = function (opts) { return this.each(function () { var defaults = { / ...
- android include使用[转]
需要包含的xml文件,我这里就放了一个Button按钮: btn.xml: <?xml version="1.0" encoding="utf-8"?&g ...
- (转)转一份在 51testing 上的讨论——如何测试一个门户网站是否可以支持10万用户同时在线?
转自:http://www.cnblogs.com/jackei/archive/2006/11/16/561846.html 这个帖子的内容比较典型,大家有兴趣可以也思考一下. 先是楼主提出问题: ...
- 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 ...
- WP8整合Bing应用,生活有求Bing
在Windows 8中,Bing应用一直随系统而存在,提供多样化的资讯.它们是我的“御用”App,因为可以根据我的使用习惯对应用进行定制. 在Windows Phone 8系统第三次官方更新之后, B ...
- Navicat连接mysql8.0.1版本出现1251--Client does not support authentication protocol requested by server的解决
转载自:https://blog.csdn.net/XDMFC/article/details/80263215 好不容易安装好mysql,但又出现了mysql客户端版本太低的问题.根据参考的这篇博客 ...
- 美团基于STORM的应用
https://my.oschina.net/dolphinboy/blog/2933843
- Java 理论与实践: 用弱引用堵住内存泄漏
弱引用使得表达对象生命周期关系变得容易了 虽然用 Java™ 语言编写的程序在理论上是不会出现“内存泄漏”的,但是有时对象在不再作为程序的逻辑状态的一部分之后仍然不被垃圾收集.本月,负责保障应用程序健 ...