Автоматически туннелировать все порты запущенных инстансов Docker в boot2docker

docker ps -q | xargs -n 1 docker inspect | jq '.[0].NetworkSettings.Ports +{} | map(select(. != null)[0].HostPort) | map("-L \(.):localhost:\(.)") ' | sed -n 's/.*"\(.*\)".*/\1/p' |xargs boot2docker ssh -N


Эта команда используется для автоматического туннелирования всех портов запущенных инстансов Docker в boot2docker.
docker ps -q выводит ID всех запущенных контейнеров;
xargs -n 1 docker inspect для каждого ID выполнит команду docker inspect, которая выводит информацию о контейнере в формате JSON;
jq '.[0].NetworkSettings.Ports +{} | map(select(. != null)[0].HostPort) | map("-L \(.):localhost:\(.)")' извлекает значения порта и формирует список опций для команды проброса порта ssh (-L), который затем выполняет boot2docker ssh -N (без логина на целевую машину), чтобы эти команды выполнились на хост-машине.

Альтернативной командой может служить docker port, которая выводит список отображения портов для каждого контейнера, что позволяет вручную установить проброс портов из контейнеров в хост-систему.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *