- A+
前一节演示在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 network create xxx 创建自定义网桥网络,默认就是bridge模式
docker network create test_network
把这个网桥连接Sql Server 的容器
docker network connect test_network mssqlserver
第二步:更改.NetCore项目数据库连接配置文件,并创建容器
将.net core项目中,数据库连接字符串当中 Data Source 地址改为 mssql的容器名称,例如本示例中的:mssqlserver
然后重新生成镜像文件
docker build -t myapidemo:1.0 .
接下来创建容器,注意了!、注意了!注意了!
创建容器的时候一定要指定网桥 --network=test_network 表示将该容器连接到 test_network 网桥
docker run --name=myapidemo -d -p 9020:80 --network=test_network myapidemo:1.0
从上图可以看到,容器成功运行!但是如何验证 应用项目容器 是否和 mssqlserver容器链接上了呢?
很简单,通过应用接口向数据库插入一条数据,如果插入成功,不就证明链接成功了么!
看,数据成功的插入到数据库了!
以上作为测试可以,但正式项目中还是要用Nginx来反向代理!
第三步:更改Nginx反向代理配置文件,连接到bridge网桥, 并重启Nginx
前边章节已经演示过如何配置Nginx反向代理,这里就不重复演示了!
参考:Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(二)
因为上边的容器都使用了bridge网桥连接,你会发现在原来的Nginx配置文件当中继续使用Ip映射已经失效了,所以需要把原来的Ip改为容器名!
这里直接修改 root/nginx/conf 路径下的 default.conf 文件
将 proxy_pass 后边的 IP地址 修改为 .net Core项目的容器名,如下:http://myapidemo:80
server { listen 80; charset utf-8; server_name myapidemo; location / { proxy_pass http://myapidemo:80; proxy_redirect default; # root /usr/share/nginx/html; # index index.html index.htm; } }
修改完后,保存退出!并重启 Nginx容器
docker restart nginxapi
然后使用Nginx代理的端口4030 添加一条数据!
数据添加成功!