Ответ 1
Я отправился с interlock для маршрутизации http-трафика с помощью nginx плагин. Я решил использовать случайный порт для каждого SSH-соединения, поскольку я не мог заставить его работать, используя только один поддомен.
У меня есть подстановочный dns, указывающий на мой сервер, например. *.domain.com
Я хотел бы направить каждый поддомен на собственный контейнер докеров. Так что box1.domain.com переходит в соответствующий контейнер докеров. Это должно работать для любого трафика, в основном HTTP и SSH.
Или, может быть, порт может быть частью субдомена, например. 80.box1.domain.com. У меня будет много контейнеров-докеров, поэтому решение должно быть динамическим, а не жестко-кодированным для каждого контейнера.
Я отправился с interlock для маршрутизации http-трафика с помощью nginx плагин. Я решил использовать случайный порт для каждого SSH-соединения, поскольку я не мог заставить его работать, используя только один поддомен.
Другим решением было бы использовать https://github.com/jwilder/nginx-proxy.
Этот инструмент автоматически перенаправляет запросы в соответствующий контейнер (на основе субдомена через переменную среды контейнера VIRTUAL_HOST).
Например, если вы хотите перенаправить box1.domain.com в контейнер, просто установите для переменной контейнера VIRTUAL_HOST значение " box1.domain.com".
Вот подробный учебник, который я написал об этом: http://blog.florianlopes.io/host-multiple-websites-on-single-host-docker.
мой ответ может появиться допоздна, но когда вы используете докер, вам не нужен ssh для подключения к вашим контейнерам. с помощью команды docker exec
вы можете запустить команду оболочки непосредственно в вашем запущенном контейнере.
вот мой совет, используйте контейнер nginx proxy, указанный в начале для настройки поддоменов. и запустите portainer на своем хосте, чтобы получить визуальный обзор ваших контейнеров, изображений, журналов и даже выполнить команду во всех это через portainer gui.
Самое простое решение - использовать метод Apache mod_rewrite RewriteMap. Он очень эффективен при использовании в текстовом файле, но при желании может вызвать script. Существует fooobar.com/info/413121/..., который хорошо описывает вариант script.
Если вы хотите избежать Apache, добрые люди в dotCloud создали Hipache для маршрутизации своих услуг PaaS. Они даже документировали разные вещи, которые они пытались, прежде чем создавать собственное решение. Я нашел ссылку на tsuru.io, использующую hipache именно для маршрутизации в контейнеры докеров, чтобы определенно проверить его для этой цели.