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

  • A+
所属分类:.NET技术
摘要

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

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

docker network create test_network

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

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

docker network connect test_network mssqlserver

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

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

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

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

然后重新生成镜像文件

docker build -t myapidemo:1.0 .

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

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

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

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

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

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

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

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

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

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

以上作为测试可以,但正式项目中还是要用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)

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

将 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

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

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

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

数据添加成功!

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