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 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 www.xxxxx.com;  #如果有域名,填寫到這里,外網訪問時用:www.xxxxx.com:對外端口,即可訪問! 沒有域名,填寫localhost

    location / {
       proxy_pass http://myapidemo:80;
       proxy_redirect default;

       # root   /usr/share/nginx/html;
       # index  index.html index.htm;
    }
}

修改完后,保存退出!並重啟 Nginx容器

docker restart nginxapi

進入容器,重新加載配置,

docker exec -it nginx bash      --先進入容器

nginx -t && nginx -s reload     --重新加載配置

然后使用Nginx代理的端口4030 添加一條數據!

數據添加成功!

 

使用域名訪問也可以訪問成功!

其他相關命令:

docker network ls    --查看容器的網絡信息 docker network inspect NETWORK ID --查看有哪些容器鏈接到該網絡
docker network connect 網橋名 容器名      --將容器連接到自定義網橋
nginx -t && nginx -s reload --進入nginx容器,重新加載配置

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM