У меня есть компьютер с графическим процессором, сервер и клиент. Поскольку компьютер с графическим процессором находится за инфраструктурой безопасности, он поддерживает обратное соединение S-1019 * с сервером, чтобы клиент мог получить доступ к компьютеру с графическим процессором с сервера:
ssh -R 19507:localhost:22 www.example.org
Затем клиент может получить доступ к компьютеру с графическим процессором:
ssh -L 19508:localhost:19508 user@www.example.org -t ssh -L 19508:localhost:19508 user@localhost -p 19507
Записная книжка Jupyter может быть запущена на компьютере с графическим процессором:
jupyter notebook --no-browser --port=19508
И затем он доступен удаленно клиенту через URL localhost: 19508.
Теперь, вместо того, чтобы запускать Jupyter на компьютере с графическим процессором, просто используя системную установку, я бы хотел запустить его из контейнера Docker. Когда я запускаю ту же команду Jupyter из контейнера, я сталкиваюсь со следующим сообщением:
OSError: [Errno 99] Cannot assign requested address
Как это можно решить? Как записная книжка Jupyter в контейнере может вещать на порт 19508, чтобы он был удаленно доступен через S SH?
Способ запуска контейнера Docker выглядит примерно так:
docker run -u 'root' -v /home/repositories:/repositories -p 19508:19508 --ip 0.0.0.0 --gpus all -it --rm tensorflow/tensorflow:latest-gpu