亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何連接ASP.NET Core的docker鏡像(代碼優先)和SQL Server

如何連接ASP.NET Core的docker鏡像(代碼優先)和SQL Server

C#
慕容森 2023-06-25 14:27:30
我正在 nopCommerce 上處理一個項目,并嘗試使用 docker 映像運行它。有兩個映像,一個用于 nopCommerce,第二個用于 MSSQL 服務器。這是我遵循的步驟,1)構建docker鏡像并在端口8080上運行C:\Users\Admin>docker?run?-d?-p?8080:80?--name?mystore?nop420 ca626cc5ed4e3759a03e9645dcd374016a5d8f278ffede8e1345f851f9a82c7d項目運行在8080端口2) 從Docker Hub中提取 MSSQL(Express) Linux 鏡像3)使用命令運行它docker?run?-e?'ACCEPT_EULA=Y'?-e?'SA_PASSWORD=yourStrong(!)Password'?-e?'MSSQL_PID=Express'?-p?1433:1433?-d?mcr.microsoft.com/mssql/server:2017-latest-ubuntu4)?docker exec -it unruffled_tharp "bash"5)?/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'yourStrong(!)Password'6) 創建數據庫7) 嘗試使用 VSCode 擴展連接 MSSQL 圖像并且它有效8) 將相同的連接字符串傳遞到 nopCommerce 安裝頁面Data?Source=localhost;Initial?Catalog=nop420;User?ID=sa;Password=yourStrong(!)Password但它給出了一個錯誤Setup failed: An error occurred while creating the database: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server)我嘗試使用 IP 而不是 localhost,添加端口 1433 以及來自不同論壇的幾乎所有內容,但錯誤仍然相同。
查看完整描述

1 回答

?
DIEA

TA貢獻1820條經驗 獲得超2個贊

這通常是因為 Docker 為容器創建了自己的內部網絡,因此默認情況下兩個容器看不到對方。所以你有兩個選擇:

  1. 創建一個 docker 網絡并將兩個容器附加到該網絡

創建一個新網絡:

docker network create <networkName>

要將容器連接到特定網絡:

– 使用 docker run 和 —network 標志啟動容器時連接到網絡。像這樣的東西(注意網絡標志)

docker run -dit --name <containerName> --network <networkName> <imageName>

– 使用以下命令將已創建的容器連接到網絡

docker network connect <networkName> <containerName>
  1. 使用 docker-compose 設置兩個圖像(這是我的首選選項)。Docker compose 自動創建網絡并設置容器以在該網絡中運行

設置網絡后,您應該能夠使用以下命令從一個容器到達另一個容器containerName:PortNumber

如果容器仍然無法相互通信:

– 檢查它們是否實際上在同一網絡中:通過運行docker network inspect

– 檢查是否可以到達另一臺機器(從容器內)

ping <dockerContainerName>
ping <dockerContainerIPaddress>

– 檢查相應的端口是否打開

nmap -p <portnumber> <dockerContainerIPaddress>


查看完整回答
反對 回復 2023-06-25
  • 1 回答
  • 0 關注
  • 142 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號