Для размещения нескольких докер контейнеров на одной машине которые будут доступны на 80 порту (т.е для веба) нам необходимо воспользоваться каким-то обратным прокси, который будет в зависимости от запроса возвращать ответы с различных контейнеров.
Удобнее всего воспользоваться контейнером jwilder/nginx-proxy:
docker run -d -p 80:80 \ -e DEFAULT_HOST=sassoft.ru \ --name entry-nginx \ -v /etc/nginx/vhost.d \ -v /usr/share/nginx/html \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ jwilder/nginx-proxy
Что делает данный контейнер?
Слушает докер сокет и просматривает какие контейнеры уже запущены на машине. Для того, чтобы прописать правила куда перенаправлять трафик достаточно ваш контейнер запускать с переменной:
-e VIRTUAL_HOST=subdomain.sassoft.ru
Тем самым при запуске контейнера nginx-proxy автоматически добавит правило перенаправлять запросы которые идут с subdomain.sassoft.ru на наш контейнер.