AMcoder - javascript, python, java, html, php, sql

Լռելյայնորեն, դոկեր կոնտեյները կարո՞ղ է զանգահարել հյուրընկալողի localhost UDP-ին:

Ես ունեմ դոկեր կոնտեյներ, ինչպես նաև VM-ի վրա տեղադրել եմ 8125 նավահանգստի UDP-ի համար լսող դևոն: Կոնտեյները տվյալներ է ուղարկում UDP արձանագրությամբ այս 8125 պորտի վրա:

Ես փորձում էի բացել նավահանգիստը՝ բեռնարկղը սկսելով -p 8125:8125/udp-ով, բայց ստանում եմ հետևյալ սխալը.

Error starting userland proxy: listen udp 0.0.0.0:8125: bind: address already in use

Ինչն իմաստ ունի, քանի որ դեյմոնն արդեն լսում է այս նավահանգստում:

Այսպիսով, ինչպես կարող եմ կարգավորել Docker-ը, որպեսզի բեռնարկղը կարողանա UDP բեռներ ուղարկել արտաքին դեյմոնին:

14.05.2017

  • Սովորական կարգաբերմամբ կոնտեյները սահմանափակված չէ նրանով, թե ինչ կարող է ուղարկել (որպես հաճախորդ): Ձեզ անհրաժեշտ է միայն բացել սերվերի նավահանգիստները: Դուք պետք է կարողանաք UDP փաթեթներ ուղարկել հոսթին (օգտագործելով հյուրընկալող IP-ն, ինչպես երևում է կոնտեյների կողմից, այլ ոչ թե localhost-ը, որը կուղարկեր հենց կոնտեյներ, stackoverflow.com/questions/22944631/): 14.05.2017
  • Լավ, այնպես որ ես խնդիրներ էի փնտրում հյուրընկալող մեքենայի վրա, մինչդեռ իրականում խնդիրը գալիս էր կոնտեյների ներսից :) Շնորհակալություն դա պարզաբանելու համար 14.05.2017

Պատասխանները:


1

Նավահանգիստների բացումը անհրաժեշտ է միայն այն ժամանակ, երբ ցանկանում եք լսել, որ հարցումները չեն ուղարկվում: Լռելյայնորեն Docker-ը տրամադրում է ցանցի անհրաժեշտ անվանատարածք, որպեսզի ձեր կոնտեյները հաղորդակցվի հյուրընկալողին կամ արտաքին աշխարհին:

Այսպիսով, դուք կարող եք դա երկու եղանակով.

  1. օգտագործեք --net host-ը ձեր docker run-ում և հարցումներ ուղարկեք localhost:8125-ին, այս դեպքում, եթե ձեր կոնտեյներացված հավելվածը արդյունավետորեն կիսում է հյուրընկալողի ցանցի փաթեթը: Այսպիսով, localhost-ը մատնանշում է դեյմոնին, որն արդեն աշխատում է ձեր հոսթում:

  2. խոսեք կոնտեյներային ցանցի դարպասի հետ (որը սովորաբար 172.17.0.1 է) կամ ձեր հաղորդավարի հոսթի անվան հետ ձեր կոնտեյներից: Այնուհետև դուք կարող եք փաթեթներ ուղարկել ձեր դևոնին ձեր հոսթում:

14.05.2017
  • Ես շարունակական պարգևի հետ կապված հարց ունեմ, որին կարելի է պատասխանել հենց դրանով (ես օգտագործեցի ձեր երկրորդ տարբերակը՝ զանգահարելով դարպասի հասցեն): Դա կրկնօրինակ չէ, քանի որ այն շատ ավելի բարձր մակարդակ է և այլն, բայց լուծումն այն է, ինչ դուք տրամադրել եք Boynux: Եթե ​​ցանկանում եք ներկայացուցիչը, ահա հղումը՝ stackoverflow.com/questions/43822074/ 14.05.2017
  • Այդ --net hostը պետք է ավելի հաճախ նշել։ Կարծես թե շատ մարդիկ չգիտեն այդ մասին: Եթե ​​դուք նավահանգիստների քարտեզագրման կարիք չունեք և լավ եք, որ docker-ը կիսում է իրական localhost-ը, այդ դրոշը շատ ավելի հեշտ է, քան կոնտեյների համար մի ամբողջ վիրտուալ ցանց ստեղծելը (և պետք է գործ ունենալ յուրաքանչյուր կոնտեյների հետ, որն ունի իր localhost-ը): 15.05.2017
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..