डॉकर होस्ट पर वेबसर्वर तक नहीं पहुंच सकता है

मैं एक डॉकराइज्ड वातावरण के अंदर अजगर डीजेंगो को सेटअप करने की कोशिश कर रहा हूं

Dockerfile

FROM python:3.5-slimENV PYTHONUNBUFFERED 1RUN mkdir /codeRUN pip install --upgrade pipWORKDIR /codeADD requirements.txt /code/RUN pip install -r requirements.txtADD . /code/EXPOSE 8000

मैं इसे बनाने के लिए django-app.

डॉकर-लिखें।yml

django:  container_name: django  image: django-app:latest  ports:    - "8000:8000"  volumes:    - ./config/startup.sh:/startup.sh    - ./app:/code  command: /bin/sh /startup.sh

startup.sh

#!/bin/shcd /codedjango-admin.py startproject djagentoecho "Creating Project djagento"cd djagentopython manage.py runserver

मैं अपने होस्ट सिस्टम के रूप में उबंटू 14.04 एलटीएस का उपयोग कर रहा हूं

docker exec -it django bash $curl 127.0.0.1:8000 है succesfull.

मुझे अपने कंटेनर का आईपी मिल रहा है docker inspect django

    "Gateway": "172.17.0.1",    "IPAddress": "172.17.0.2"

लेकिन जब कोशिश कर रहा है curl 172.17.0.1:8000 या curl 172.17.0.2:8000 या कर्ल 127.0.0.1:8000 मैं कनेक्शन रीसेट के अलावा कुछ भी प्राप्त करने में सक्षम नहीं हूं

संपादित करें

docker psbaada462ae72        django-app:latest   "/bin/sh /startup.sh"   6 seconds ago       Up 5 seconds        0.0.0.0:8005->8000/tcp   django

* एक और बंदरगाह पर, एक ही परिणाम *

CONTAINER ID        IMAGE               COMMAND                 CREATED              STATUS              PORTS                    NAMESa9d99ee563e5        django-app:latest   "/bin/sh /startup.sh"   About a minute ago   Up About a minute   0.0.0.0:8005->8000/tcp   django

धन्यवाद

इस पर ठोकर खाने वाले किसी भी व्यक्ति के लिए, आपको डॉकर कंटेनर के अंदर 0.0.0.0:8000 पर डीजेंगो सर्वर चलाना होगा, बस जोड़ना होगा python django-admin runserver 0.0.0.0:8000 मेरे में startup.sh मेरे लिए यह तय

क्या पोर्ट 8000 का उपयोग करके आपकी मशीन पर कुछ और है? होस्ट मशीन पर पोर्ट को 8005 या 9005 आदि में बदलने का प्रयास करें । मैं सामान्य रूप से एक ही बंदरगाह का उपयोग करने से नफरत करता हूं क्योंकि यह कभी-कभी भ्रम का कारण बनता है ।

में अपने dockerfile का उपयोग करें

ports:   - '8005:8000'

उदाहरण।

के बाद:

  • डोकर रन-रचना के ऊपर -d
  • डॉकर पीएस चलाएं
  • >देखें कि क्या आप देखते हैं0.0.0.0:8005-8000/पोर्ट के तहत कंटेनर के लिए टीसीपी ।

फिर पोर्ट 8005 पर आईपी पर कर्लिंग का प्रयास करें ।

यदि वह अभी भी काम नहीं करता है तो अपने कंटेनर पर अपने आईपीटीबल्स की जांच करें । क्या आपने केवल दुर्घटना से पोर्ट 8000 को स्थानीय में बंद कर दिया है?