У меня есть удаленный сервер - внешняя локальная сеть с открытым 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
Но я также попробовал другое решение - порт закрыт на сервере после запуска.
EDIT: После изменения порта в соответствии с @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
Команда 'Докер ps' КОНТЕЙНЕР ID IMAGE КОМАНДА СОЗДАЕТСЯ СТАТУС ПОРТЫ ИМЕНА 8c83ab3fb45c kaggle/питон: последний«/ USR/бен/TiNi - дзю 42 секунд назад на 41 секунд 0.0.0.0:8088->8088/tcp angry_thompson Отдых слишком длинный для комментариев. Я добавляю его в сообщение как EDIT. – user902691