Docker не имеет возможности сделать это. Но с точки зрения вашего клиента s sh контейнер ничем не отличается от любой другой программы, работающей на удаленном хосте, и вы можете использовать опцию ssh -L
для перенаправления локального порта в удаленную систему.
# Tell ssh to forward local port 8001 to remote port 8001
ssh -L 8001:localhost:8001 user@192.168.0.x \
# Incidentally the remote port happens to be via a Docker container
docker run -p 127.0.0.1:8001:8001 ...
Всякий раз, когда вы устанавливаете DOCKER_HOST
или используете опцию docker -H
, вы даете инструкции удаленному демону Docker, который интерпретирует их относительно себя. docker -H ... -v ...
монтирует каталог в той же системе, что и демон Docker, в контейнер; docker -H ... -p ...
публикует порт в той же системе, что и демон Docker. Docker не имеет возможности каким-либо образом учитывать содержимое или сетевой стек локальной системы при этом.
(Единственное исключение - docker -H ... build
, которое фактически создает файл tar локального каталога и отправляет его по сети для использования в качестве контекста сборки, поэтому вы можете создать удаленный Docker демон для создания образа локального исходного дерева.)