簡體   English   中英

Docker:無法訪問具有給定IP地址/令牌的(Jupyter Data Science)Docker容器? 為什么端口錯誤?

[英]Docker: cannot access (jupyter data science) docker container with given IP address/token? Why is the port wrong?

我使用以下命令安裝了Jupiter / Data Science docker容器docker run -p 7777:8888 --name DataS jupyter/datascience-notebook

我收到此回復:

首次連接時,將此URL復制/粘貼到瀏覽器中,以使用令牌登錄: http://(c623e69fe641或127.0.0.1):8888 /?token = 0bf2a07b1dcd957f616e73941f5dc5dba4cd01d5341b21fd

在Kinematik中,我得到相同的信息。

但是,當我將地址插入瀏覽器127.0.0.1:8888 oder :7777 ,總是會收到一個錯誤,即瀏覽器無法建立任何連接。 (我嘗試了幾種瀏覽器)

第二點是,我認為我通過此選項-p 7777:8888獲得了本地端口7777。 為什么我總是一直把8888作為本地端口? 我也嘗試了-p 8800:7777但是它給了我相同的結果:-(

我要更改它的原因是我的本地apache Web服務器在此端口上運行的事實。

我究竟做錯了什么? (關於訪問以及端口映射)

謝謝。

問題出在網絡模式下。 快速解決方案-使用--network=host 在這種情況下,您不需要端口轉發,也不需要IP地址或主機名-docker容器僅使用主機網絡:

docker run --network=host --name DataS jupyter/datascience-notebook

然后使用localhost連接:

http://localhost:8888

host網絡模式的缺點是缺乏容器隔離,在您的情況下可能不需要。

在您的情況下,發生的情況很深:

  • 您的服務從容器開始,打開端口8888 但是它知道它在容器內部,這就是為什么它要求您使用http://localhost:8888進行連接的原因。 實際上,它可以工作,但只能容器內部進行。

  • 在HOST PC上,您將容器的端口8888映射到7777 ,但是一旦輸入容器的IP地址或主機名,便無法使用localhost

如果由於安全問題或端口沖突而不想使用host網絡,只需使用容器的IP地址進行連接。 發射容器:

docker run -p 7777:8888 --name DataS jupyter/datascience-notebook

獲取容器的ip:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' DataS

http://[container ip]:7777

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM