Невозможно назначить адрес внутри контейнера Docker

Я хочу использовать пакет rsub для Sublime Text, чтобы редактировать код внутри контейнера Docker, который работает на удаленном сервере. Однако, когда я выполняю

rsub my_code.py

, я получаю ошибку:

/usr/local/bin/rsub: connect: Cannot assign requested address /usr/local/bin/rsub: line 392: /dev/tcp/localhost/52698: Cannot assign requested address

Строка 392 в основном соответствует этой инструкции:

exec 3<> "/dev/tcp/localhost/52698" bash: connect: Cannot assign requested address bash: /dev/tcp/localhost/52698: Cannot assign requested address

Если я выйду контейнер Docker и выполнить ту же инструкцию на удаленном сервере, он работает хорошо (или, по крайней мере, он не дает мне никаких сообщений об ошибках). Можете ли вы помочь мне исправить эту проблему? При необходимости я могу изменить файл Docker.

EDIT: Я включаю часть скрипта rsub, которая вызывает ошибку. Если вы считаете, что это необходимо, я должен позаботиться о ней раньше. Обратите внимание, что в данный момент в сценарии $host=localhost и $port=52698. Я дважды проверял это с помощью операторов echo.

# connect to textmate and send command # exec 3<> "/dev/tcp/$host/$port" if [ $? -gt 0 ]; then echo "Unable to connect to TextMate on $host:$port" exit 1 fi read -r server_info 0<&3 log $server_info for i in "${!filepaths[@]}"; do open_file "$i" done echo "." 1>&3 if [[ $nowait = true ]]; then exec </dev/null >/dev/null 2>/dev/null ( (handle_connection &) &) else handle_connection fi

EDIT : меня спрашивали об ОС хоста. Это результат uname -a, когда на удаленном хосте и вне контейнера Docker (имя сервера удалено):

Linux xxxxxxx 4.4.0-104-generic #127-Ubuntu SMP Mon Dec 11 12:16:42 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

, и это результат той же команды при запуске снаружи контейнер Докера:

Linux yyyyyyyyy 4.4.0-104-generic #127-Ubuntu SMP Mon Dec 11 12:16:42 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

xxxxxxx и yyyyyyy - разные строки. Кроме того, когда внутри контейнера Docker я не могу найти директорию tcp внутри каталога dev:

root@7f199087c883:~# ls /dev/tcp ls: cannot access '/dev/tcp': No such file or directory
2
задан 18 May 2018 в 19:29

3 ответа

В конце концов, поскольку rsub работал на удаленном хосте, самым простым решением было:

войти на удаленный хост (без запуска контейнера) использовать rsub для редактирования любого файлы на удаленном хосте, в сеансе Sublime на моем локальном компьютере, затем снова создайте контейнер.

Это немного медленно, потому что каждый раз, когда я вношу изменения, мне нужно перестроить, но:

войдите на удаленный хост (без запуска контейнера) это лучший способ работать в любом случае: каждый раз, когда я вношу изменения в проект, я должен перестроить контейнер в любом случае. Это побуждает меня совершать изменения чаще, что всегда является хорошей идеей :-)
2
ответ дан 17 July 2018 в 14:03

В конце концов, поскольку rsub работал на удаленном хосте, самым простым решением было:

войти на удаленный хост (без запуска контейнера) использовать rsub для редактирования любого файлы на удаленном хосте, в сеансе Sublime на моем локальном компьютере, затем снова создайте контейнер.

Это немного медленно, потому что каждый раз, когда я вношу изменения, мне нужно перестроить, но:

войдите на удаленный хост (без запуска контейнера) это лучший способ работать в любом случае: каждый раз, когда я вношу изменения в проект, я должен перестроить контейнер в любом случае. Это побуждает меня совершать изменения чаще, что всегда является хорошей идеей :-)
2
ответ дан 20 July 2018 в 14:07

В конце концов, поскольку rsub работал на удаленном хосте, самым простым решением было:

войти на удаленный хост (без запуска контейнера) использовать rsub для редактирования любого файлы на удаленном хосте, в сеансе Sublime на моем локальном компьютере, затем снова создайте контейнер.

Это немного медленно, потому что каждый раз, когда я вношу изменения, мне нужно перестроить, но:

войдите на удаленный хост (без запуска контейнера) это лучший способ работать в любом случае: каждый раз, когда я вношу изменения в проект, я должен перестроить контейнер в любом случае. Это побуждает меня совершать изменения чаще, что всегда является хорошей идеей :-)
2
ответ дан 23 July 2018 в 09:38

Другие вопросы по тегам:

Похожие вопросы: