iT邦幫忙

0

關於 Docker Django 外網連線問題

  • 分享至 

  • xImage

我Django在container已經啟動了,也執行 python manage.py runserver 127.0.0.1:8000

docker inspect Django-container 顯示資訊如下
"Gateway": "172.18.0.1",
"IPAddress": "172.18.0.4",

我要如何透過外網連到我Django的URL呢?

froce iT邦大師 1 級 ‧ 2023-08-17 08:36:27 檢舉
1. 你run server把ip指定在容器內的127.0.0.1...這只有容器內能存取吧?你有試過同區網能不能連你的網站嗎?
2. container不是啟動就好,啟動時有暴露容器的port給host嗎?
3. runserver這指令只是讓你能debug,真正要佈署請參閱下面,至少弄個uwsgi,才會有多執行序,除非你的網站只想給單人或很少人數使用
https://docs.djangoproject.com/zh-hans/4.2/howto/deployment/
4. 最後要開放到外網,傳統是透過防火牆開port,做port forwarding,現在可以考慮用穿透技術如cloudflare tunnel。

我個人建議先不要弄在容器裡,先試著把本機上要怎麼佈做一遍,最好搞台舊機器或VM,網路設定bridge,直接裝linux試,等你會了再學著搞容器。
JJYEN iT邦新手 4 級 ‧ 2023-08-20 21:21:47 檢舉
感謝你的建議
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
Robert Chang
iT邦新手 3 級 ‧ 2023-08-16 23:11:38

如果是你的本機的話,建議使用 Ngrok 這樣的服務來提供 DNS 連線到你的主機,直接把電腦打開到網路世界不是一件安全的事情。

如果是在 Production 上的機器應該會有 IP 位置,例如 Production 上的機器 IP 是 123.123.123.123 那你就可以透過 ( 這邊看你是開 8000 port ) 123.123.123.123:8000 送請求到你的 Container 內了。

但通常都會是建立一個 Web Server 放在 443 port 走 https 才是正確的做法。

JJYEN iT邦新手 4 級 ‧ 2023-08-20 21:22:00 檢舉

感謝

我要發表回答

立即登入回答