Networking
我在 Docker 容器中安裝了 Jupyter-Lab,但無法訪問 Jupyter Web UI
情況:
所以我在網路上的虛擬機中的 Docker 容器內安裝了 Jupyter-Lab。然後我做了一個送出*(我知道這不是正確的做事方式,我應該使用 Docker 文件)*。然後我進入容器 bash 並執行
jupyter-lab
它,然後將 URL 輸出到 STDOut 以連接到 WebGUI:http://localhost:8888/ or http://127.0.0.1:8888/
下面是我的設置圖:
┌─────────────────────────────┐ │ │ │ VM Container │ │ IP: 192.168.10.223 │ ┌────────────────────┐ │ Docker IP: 172.17.0.1 │ │ │ │ │ My Local 192.168.10.0/24 Network │ My Machine │ │ ┌─────────────────────┐ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx│ │ │ │ Docker │ │ │ IP: 192.168.10.50 │ │ │ Jupyter-Lab │ │ │ │ │ │ │ │ └────────────────────┘ │ └─────────────────────┘ │ │ │ └─────────────────────────────┘
問題:
我似乎無法連接到 Jupyter WebGui。我嘗試了以下命令:
sudo docker run -it --rm -p 8888:8888 -v $(realpath ~/notebooks):/tf/notebooks sudo docker run -it --rm -p 8888:8888 --expose 8888 -v $(realpath ~/notebooks):/tf/notebooks sudo docker run -it --rm -p 127.0.0.1:8888:8888 -v $(realpath ~/notebooks):/tf/notebooks sudo docker run -it --rm -p 8888:8888 --ip 0.0.0.0 -v $(realpath ~/notebooks):/tf/notebooks
而且我似乎無法從我的 192.168.10.50 機器連接到 Jupyter 實例。我已經執行
netstat -tulnp
清楚地表明埠 8888 已暴露:docker_machine@instance:~$ netstat -tulpn (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:45511 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN - tcp6 0 0 :::22 :::* LISTEN - udp 0 0 127.0.0.53:53 0.0.0.0:* -
這表明它正在偵聽任何要連接的地址,所以我不明白。
問題
為什麼當我將瀏覽器指向 192.168.10.223:8888 時無法訪問 Jupyter Web 界面?
您的輸出
jupyter-lab
表明 jupyter 僅偵聽容器內的環回介面。要啟用從容器外部的訪問,您需要將其綁定到容器的外部介面(或所有介面)。jupyter-lab --ip="0.0.0.0"