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)(二) ...
随机推荐
- mui框架如何实现页面间传值
mui框架如何实现页面间传值 我的传值 listDetail = '<li class="mui-table-view-cell mui-media>">< ...
- 万物云平台数据转发 c# 控制台程序
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...
- java中的中文字符转码技术
package com.yin.test; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; impor ...
- 利用HttpURLConnection发送post请求上传多个文件
本文要用java.net.HttpURLConnection来实现多个文件上传 1. 研究 form 表单到底封装了什么样的信息发送到servlet. 假如我参数写的内容是hello word,然后二 ...
- 谷歌的java文本差异对比工具
package com.huawei.common.transfertool.utils; /** * @author Paul * @version 0.1 * @date 2018/12/11 * ...
- form表单提交时action路劲问题
项目总出现window上部署可以访问,linux下部署不能访问的问题 linux下访问action必须是全路径,可以加上“${pageContext.request.contextPath}” 便可 ...
- js-设置时间,获取几天后的时间
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- spring mvc 的请求流程
SpringMVC核心处理流程: 1.DispatcherServlet前端控制器接收发过来的请求,交给HandlerMapping处理器映射器 2.HandlerMapping处理器映射器,根据请求 ...
- r test
rt <-read.table("C:/Users/Ju/Desktop/anova/anova.txt",head=TRUE) lm.sol <-lm(Y~X1+X2 ...
- MySQL--Ansible推送密钥实现免密码登录
从别人网站抄过来,保留自用 场景: 对于需要管理的很多linux服务器,每次登录都输入密码比较痛苦,配置一个跳板机,将本地公钥推送带各访问节点上实现SSH登录 登录账号:admin 本地秘钥路径:/h ...