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)(二) ...
随机推荐
- linux学习--查看操作系统版本及cpu及内存信息
查看版本当前操作系统内核信息 uname -a 查看当前操作系统版本信息 cat /proc/version 查看物理cpu个数: cat /proc/cpuinfo| grep "phy ...
- C的指针和数组
int i; //定义整型变量i int *p; //定义一个指向int的指针变量p int a[5]; //定义一个int数组a int *p[5]; //定义一个指针数组,其中每个数组元素指向一个 ...
- 第02章:MongoDB安装
①下载 https://www.mongodb.com/ 下载所需版本的tar.gz ②解压安装 tar -zxvf mongodb-3.2.12.tar.gz mv -r mongodb-3.2. ...
- UVa 11021 Tribles (概率DP + 组合数学)
题意:有 k 只小鸟,每只都只能活一天,但是每只都可以生出一些新的小鸟,生出 i 个小鸟的概率是 Pi,问你 m 天所有的小鸟都死亡的概率是多少. 析:先考虑只有一只小鸟,dp[i] 表示 i 天全部 ...
- CDATASection类型——数据采集
CDATASection类型只针对基于XML的文档,表示的是CDATA区域 CDATASection类型和comment类型都是继承自基于Text类型,除了splitText()之外的所有字符串方法 ...
- 工作总结(一):Linux C
这三个月以来一直忙着赶进度,没有停下来记录一些东西,很多很好的东西往往只能零零散散地记在草稿本上, 这样偶尔想起来自己都找不到,所以现在抽空总结下来. 这些天做了三件事,其一是在Linux下开发了对接 ...
- C++的重载流输出运算符
// 下列代码输出什么?#include <iostream>#include <string>// typedef basic_ostream<char> ost ...
- leetcode - [7]Binary Tree Preorder Traversal
Given a binary tree, return the preorder traversal of its nodes' values. For example:Given binary tr ...
- day33(sql)
操作数据库 增: create database 数据库名 character set utf8 删 drop database 数据库名称 改 alter database 数据库名称 charac ...
- CentOS 网络设置修改 2
一.CentOS 修改IP地址 修改对应网卡的IP地址的配置文件# vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改以下内容 DEVICE=eth0 #描 ...