0
我有一個遠程服務器 - 局域網外部,使用公共IP。我想創建一個簡單的啓動腳本,它運行我的容器並將其端口分享給外部世界。遠程訪問容器
我有以下腳本:
#!/bin/bash
# 8088 should be open host port
docker run -d -v /home/user/nb/:/root -p 8889:8088 kaggle/python jupyter-notebook --no-browser --port=8889
sudo iptables -t nat -A PREROUTING -i em1 -p tcp --dport 8088 -j REDIRECT --to-port 8088
但是,在執行腳本之後,我沒有在服務器上打開端口8088。
tcp 0 0 10.0.3.1:53 0.0.0.0:* LISTEN 0 17333 -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 13560 -
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 1000 9643 -
tcp6 0 0 fa81::3a6e:7afe:fe6b:52 :::* LISTEN 114 17345 -
tcp6 0 0 :::22 :::* LISTEN 0 13562 -
tcp6 0 0 :::8889 :::* LISTEN 0 17509 -
tcp6 0 0 ::1:6010 :::* LISTEN 1000 9642 -
所以我無法連接使用來自其他主機的瀏覽器,如:
[IPv4_OF_SERVER]:8088
服務器運行的Ubuntu 14.04.5 LTS。
的腳本是基於 https://stackoverflow.com/a/22050818/902691
但我也嘗試另一種解決方案 - 端口的運行後在服務器關閉。
編輯: 根據@Felix端口的變化後:
$ netstat -anlet
tcp 0 0 10.0.3.1:53 0.0.0.0:* LISTEN 0 15758
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 15404
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 1000 14823
tcp6 0 0 fa81::3a6e:7afe:fe6b:52 :::* LISTEN 114 13312
tcp6 0 0 :::22 :::* LISTEN 0 15406
tcp6 0 0 :::8088 :::* LISTEN 0 9985
tcp6 0 0 ::1:6010 :::* LISTEN 1000 14822
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8c83ab3fb45c kaggle/python:latest "/usr/bin/tini -- ju 42 seconds ago Up 41 seconds 0.0.0.0:8088->8088/tcp angry_thompson
我改變了它,但netstat仍然沒有看到LISTEN 8088端口。 – user902691
你可以發佈'docker ps'的結果和新的netstat結果嗎? – Felix
命令'docker ps' CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8c83ab3fb45c kaggle/python:latest「/ usr/bin/tini - ju 42秒前上傳41秒0.0.0.0:8088->8088/tcp angry_thompson 休息太長了評論我把它作爲編輯後添加。 – user902691