最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker容器內(nèi)WS端口映射異常的實(shí)現(xiàn)

 更新時間:2026年04月29日 09:24:52   作者:新標(biāo)簽頁  
本文介紹了在Docker容器內(nèi)部署WebSocket服務(wù)時遇到的問題及解決方法,通過更改代碼獲取容器內(nèi)部真實(shí)IP,解決了端口映射失敗導(dǎo)致的連接不通問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在Docker容器內(nèi)部署Websocket服務(wù)時出現(xiàn)了端口映射失敗,鏈接WS時始終訪問不通的情況。

代碼如下

  var server = new WebSocketServer("ws://127.0.0.1:8888");
            server.Start(socket =>
            {
                socket.OnOpen = () => //當(dāng)建立Socket鏈接時執(zhí)行此方法
                {
                };
                socket.OnClose = () =>// 當(dāng)關(guān)閉Socket鏈接十執(zhí)行此方法
                {
                };
                socket.OnMessage = message =>// 接收客戶端發(fā)送過來的信息
                {
                };
            });
        }

將程序打包進(jìn)入Docker容器后,配置DockerCompose

version: '3.4'
services:
  tdssserver:
    image: test
    restart: always
    container_name: test
    ports:
      - 8988:8888
    environment:
      TZ: Asia/Shanghai
    volumes:
      - ./appsettings.json:/app/appsettings.json

正常情況下應(yīng)該可以通過WS正常連接到服務(wù)上,但是當(dāng)服務(wù)在Docker內(nèi)正常運(yùn)行的時候,使用測試工具進(jìn)行測試連接發(fā)現(xiàn)一直連不通。

一開始分析以為是WS協(xié)議與Http協(xié)議不是同族協(xié)議,認(rèn)為需要單獨(dú)開啟Docker的Ws協(xié)議支持。但是后來查閱資料發(fā)現(xiàn)實(shí)際上WS和HTTP都是基于TCP的,所以立馬改變排查方向。
最后分析認(rèn)為可能是使用的127.0.0.1這類的LocalHost地址,導(dǎo)致在配置Docker映射的時候沒法正確映射。
分析之后改變原來代碼

            string localIP;
            using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 0))
            {
                socket.Connect("8.8.8.8", 65530);
                IPEndPoint endPoint = socket.LocalEndPoint as IPEndPoint;
                localIP = endPoint.Address.ToString();
            }
            FleckLog.Level = Fleck.LogLevel.Debug;
            var ws = "ws://" + localIP + ":" + planws;
            var server = new WebSocketServer(ws);
            server.Start(socket =>
            {
                socket.OnOpen = () => //當(dāng)建立Socket鏈接時執(zhí)行此方法
                {
                };
                socket.OnClose = () =>// 當(dāng)關(guān)閉Socket鏈接十執(zhí)行此方法
                {
                };
                socket.OnMessage = message =>// 接收客戶端發(fā)送過來的信息
                {
                };
            });

思路是通過

         string localIP;
            using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 0))
            {
                socket.Connect("8.8.8.8", 65530);
                IPEndPoint endPoint = socket.LocalEndPoint as IPEndPoint;
                localIP = endPoint.Address.ToString();
            }
            FleckLog.Level = Fleck.LogLevel.Debug;
            var ws = "ws://" + localIP + ":" + planws;
            var server = new WebSocketServer(ws);

拿到Localip,最后用容器內(nèi)部的LocalIp創(chuàng)建對應(yīng)的WS連接。

改變代碼后生成新的Docker鏡像。啟動容器,測試連接正常。

到此這篇關(guān)于Docker容器內(nèi)WS端口映射異常的文章就介紹到這了,更多相關(guān)Docker WS端口映射內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker NFS volume創(chuàng)建與使用方式

    Docker NFS volume創(chuàng)建與使用方式

    這篇文章主要介紹了Docker NFS volume創(chuàng)建與使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 詳解使用Dockerfile創(chuàng)建帶Apache服務(wù)的CentOS Docker鏡像

    詳解使用Dockerfile創(chuàng)建帶Apache服務(wù)的CentOS Docker鏡像

    本篇文章主要介紹了使用Dockerfile創(chuàng)建帶Apache服務(wù)的CentOS Docker鏡像,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2016-12-12
  • 詳解docker pull 下來的鏡像文件存放的位置

    詳解docker pull 下來的鏡像文件存放的位置

    本篇文章主要介紹了詳解docker pull 下來的鏡像文件存放的位置,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-04-04
  • Docker拉取部署OpenJDK的完整指南

    Docker拉取部署OpenJDK的完整指南

    OpenJDK 作為 Java SE 的開源實(shí)現(xiàn),是企業(yè)級 Java 應(yīng)用的核心運(yùn)行環(huán)境,而 Docker 的容器化部署能有效解決環(huán)境一致性、資源隔離等問題,本文將詳細(xì)介紹 Docker 環(huán)境搭建、OpenJDK 拉取部署步驟,需要的朋友可以參考下
    2026-01-01
  • docker端口映射及外部無法訪問問題

    docker端口映射及外部無法訪問問題

    這篇文章主要介紹了docker端口映射及外部無法訪問問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Docker部署Nginx 及Nginx的基本使用最佳實(shí)踐

    Docker部署Nginx 及Nginx的基本使用最佳實(shí)踐

    Nginx是一個高性能的HTTP和反向代理服務(wù)器,廣泛應(yīng)用于Web服務(wù)、負(fù)載均衡和靜態(tài)資源托管等領(lǐng)域,這篇文章主要介紹了Docker部署Nginx 以及Nginx的基本使用,需要的朋友可以參考下
    2025-04-04
  • Docker安裝mysql教程以及解決mysqld: Can‘t read dir of ‘/etc/mysql/conf.d/‘問題

    Docker安裝mysql教程以及解決mysqld: Can‘t read dir&nbs

    本文詳細(xì)介紹了如何通過Docker來安裝和配置MySQL數(shù)據(jù)庫,包括拉取MySQL鏡像、啟動MySQL容器、配置MySQL、解決常見錯誤等步驟,提供了詳盡的命令和參數(shù)說明,幫助用戶順利完成MySQL的安裝和配置,文中還提到了如何處理MySQL容器啟動時遇到的“無法讀取目錄”
    2024-10-10
  • Mac系統(tǒng)上用Docker搭建lamp環(huán)境

    Mac系統(tǒng)上用Docker搭建lamp環(huán)境

    這篇文章主要給大家介紹了Mac系統(tǒng)上用Docker如何搭建lamp環(huán)境,文章給大家介紹的很詳細(xì),有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • Docker本地目錄掛載的實(shí)現(xiàn)步驟

    Docker本地目錄掛載的實(shí)現(xiàn)步驟

    本文主要介紹了Docker本地目錄掛載的實(shí)現(xiàn)步驟
    2024-02-02
  • Docker部署nginx并修改配置文件的實(shí)現(xiàn)方法

    Docker部署nginx并修改配置文件的實(shí)現(xiàn)方法

    這篇文章主要介紹了Docker部署nginx并修改配置文件的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評論

景德镇市| 淮南市| 赤城县| 甘泉县| 金川县| 手游| 遂昌县| 平远县| 五指山市| 库车县| 闵行区| 临泉县| 广德县| 涟源市| 石渠县| 麻江县| 广汉市| 广安市| 虞城县| 平果县| 响水县| 通化市| 绿春县| 贵州省| 得荣县| 阿尔山市| 阿荣旗| 郴州市| 滁州市| 安图县| 华亭县| 茶陵县| 平舆县| 合阳县| 凤凰县| 陇南市| 讷河市| 石门县| 毕节市| 秦皇岛市| 津市市|