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)(二) ...
随机推荐
- springboot+cfx实现webservice功能
一.开发服务端 1.新建工程 cfx-webservice ,最终的完整工程如下: pom.xml如下: <?xml version="1.0" encoding=" ...
- C++之基于排序方法求一组数的中位数
中位数也就是中值: 故需要先对数组进行排序(选择,插入,冒泡排序),然后在找出数组的中值. //求中值 #include<iostream> using namespace std; in ...
- python的6种基本数据类型--集合
特征 1.确定性(元素必须可hash) 2.互异性(去重) 3.无序性(集合中的元素没有顺序,先后之分) >>> s = {1,1,1,2,2,3,4,5,6,7} # 创建 > ...
- IntelliJ IDEA 2017版 spring-boot2.0.2 搭建 JPA springboot DataSource JPA 实体类浅谈
一.实体类分析 一般用到的实体类的类型有 String类型.Long类型.Integer类型.Double类型.Date类型.DateTime类型.Text类型.Boolean型等 1.String类 ...
- urb的处理流程
USB分析 2013年11月11日 16:06:24 阅读数:1807 转载自:http://blog.csdn.net/aaa6695798/article/details/4776202 很久 ...
- 轻松建立Silverlight开发环境
创建Silverlight 4开发环境,微软提供最简单的方法是使用Web Platform Installer,进行“一键安装”, 下载安装后,Web Platform Installer会自动检测哪 ...
- 《深入浅出MFC》系列之运行时类型识别(RTTI)
/********************************************************************************** 发布日期:2017-11-13 ...
- codeforces877c
C. Slava and tanks time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- Hadoop读写流程
写流程 读流程 HDFS写数据流程 HDFS读数据流程 网络拓扑-节点距离计算 节点距离:两个节点到达最近的共同祖先的距离总和
- AngularJS 路由及SPA理解
一.路由及SPA理解 路由允许我们通过不同的 URL 访问不同的内容,可实现多视图的单页web应用(SPA);通常我们的URL形式为 http://runoob.com/first/page,但在单页 ...