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)(二) ...
随机推荐
- Educational Codeforces Round 51 D. Bicolorings(dp)
https://codeforces.com/contest/1051/problem/D 题意 一个2*n的矩阵,你可以用黑白格子去填充他,求联通块数目等于k的方案数,答案%998244353. 思 ...
- VIM 与 系统剪切版
1, 查看 vim 是否支持 clipboard 功能 $ vim --version | grep clipboard 2, 如果有 +clipboard 则跳过这一步; 如果显示的是 -clipb ...
- oss上传大文件
最近公司做工程项目,实现文件云存储上传. 网上找了一天,发现网上很多代码都存在相似问题,最后终于找到了一个满足我需求的项目. 工程如下: 这里对项目的文件传输功能做出分析,怎么实现文件上传的,如何进行 ...
- python coroutine的学习跟总结[转]
简介 因为最近一段时间需要研究一些openstack相关的东西,在阅读一些相关代码的时候碰到很多python特定的一些特性,比如generator, coroutine以及一些相关的类库,比如even ...
- Monkey and Banana (hdu 1069)
http://acm.hdu.edu.cn/showproblem.php?pid=1069 题目描述: 给你n个箱子, 给你箱子的长宽高,箱子是可以无限使用的,问这些箱子摞起来最多能多高? 这些 ...
- Leetcod--20. Valid Parentheses(极简洁的括号匹配)
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the inpu ...
- HDOJ1024--Max Sum Plus Plus(动态规划)UnSolved
Now I think you have got an AC in Ignatius.L's "Max Sum" problem. To be a brave ACMer, we ...
- noip第15课作业
1. 累加求和 给定n(1<=n<=100),用递归的方法计算1+2+3+4+5+......+(n-1)+n. 输入:一个大于等于1的整数. 输出:输出一个整数. [样例输入] 5 [样 ...
- noip第5课作业
1. 计算税收 [问题描述] 对某产品征收税金,在产值1万元以上收税5%:在1万元以下但在5000元或者以上的征收税3%:在5000元以下但在1000元或以上征收税2%:1000元以下的免收税 ...
- mac版win10装eclipse图标太小了,解决办法(2k显示屏+win10)
安装了Eclipse并且打开之后,发现图标显示极其细小,肉眼几乎无法看清了.这是由于Eclipse对高分屏没有作适配导致的. Windows 10本身对于高分屏的支持已是相当不错,苏菲4的屏幕分辨率为 ...