当前位置: 首页 >服务端 > Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7)

Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7)

前一节演示在docker中安装mssql,地址:Docker学习笔记之--安装mssql(Sql Server)并使用Navicat连接测试(环境:centos7)

本节演示 .Net Core项目容器和 mssql容器之间的互联互通!

1,创建一个bridge模式的网桥,将网桥连接到mssql容器

2,更改.Net Core项目 数据库连接配置文件,并生成镜像,创建一个新的容器并连接到bridge网桥

3,更改Nginx反向代理配置文件,连接到bridge网桥, 并重启Nginx

 

第一步:创建bridge网桥,将网桥连接到mssql容器

使用 docker network ls 查看容器默认支持网络

docker network ls

Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) _ JavaClub全栈架构师技术笔记

使用docker network create xxx 创建自定义网桥网络,默认就是bridge模式

docker network create test_network

Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) _ JavaClub全栈架构师技术笔记

把这个网桥连接Sql Server 的容器 

docker network connect test_network mssqlserver

Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) _ JavaClub全栈架构师技术笔记

第二步:更改.NetCore项目数据库连接配置文件,并创建容器

将.net core项目中,数据库连接字符串当中 Data Source 地址改为 mssql的容器名称,例如本示例中的:mssqlserver

Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) _ JavaClub全栈架构师技术笔记

然后重新生成镜像文件

docker build -t myapidemo:1.0 .

Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) _ JavaClub全栈架构师技术笔记

接下来创建容器,注意了!、注意了!注意了!

创建容器的时候一定要指定网桥 --network=test_network 表示将该容器连接到 test_network 网桥

docker run --name=myapidemo -d -p 9020:80 --network=test_network myapidemo:1.0

Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) _ JavaClub全栈架构师技术笔记

从上图可以看到,容器成功运行!但是如何验证 应用项目容器 是否和 mssqlserver容器链接上了呢?

很简单,通过应用接口向数据库插入一条数据,如果插入成功,不就证明链接成功了么!

Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) _ JavaClub全栈架构师技术笔记

看,数据成功的插入到数据库了!

Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) _ JavaClub全栈架构师技术笔记

以上作为测试可以,但正式项目中还是要用Nginx来反向代理!

第三步:更改Nginx反向代理配置文件,连接到bridge网桥, 并重启Nginx

前边章节已经演示过如何配置Nginx反向代理,这里就不重复演示了!

参考:Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(二)

因为上边的容器都使用了bridge网桥连接,你会发现在原来的Nginx配置文件当中继续使用Ip映射已经失效了,所以需要把原来的Ip改为容器名!

这里直接修改 root/nginx/conf 路径下的 default.conf 文件

Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) _ JavaClub全栈架构师技术笔记

Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) _ JavaClub全栈架构师技术笔记

将 proxy_pass 后边的 IP地址 修改为 .net Core项目的容器名,如下:http://myapidemo:80

server {listen 80;charset utf-8;server_name www.xxxxx.com;  #如果有域名,填写到这里,外网访问时用:www.xxxxx.com:对外端口,即可访问! 没有域名,填写localhostlocation / {proxy_pass http://myapidemo:80;proxy_redirect default;# root/usr/share/nginx/html;# index  index.html index.htm;}}

修改完后,保存退出!并重启 Nginx容器

docker restart nginxapi

Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) _ JavaClub全栈架构师技术笔记

进入容器,重新加载配置,

docker exec -it nginx bash  --先进入容器nginx -t && nginx -s reload --重新加载配置

Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) _ JavaClub全栈架构师技术笔记

然后使用Nginx代理的端口4030 添加一条数据!

Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) _ JavaClub全栈架构师技术笔记

数据添加成功!

Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) _ JavaClub全栈架构师技术笔记 

使用域名访问也可以访问成功!

Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) _ JavaClub全栈架构师技术笔记

其他相关命令:

docker network ls--查看容器的网络信息docker network inspect  NETWORK ID--查看有哪些容器链接到该网络
docker network connect 网桥名 容器名  --将容器连接到自定义网桥
nginx -t && nginx -s reload --进入nginx容器,重新加载配置

 

作者:找.net工作(北京)
来源链接:https://www.cnblogs.com/peterzhang123/p/13896009.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/113321.html

标签:Nginx
分享给朋友:

“Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7)” 的相关文章