Вы можете использовать любой обратный прокси-сервер, чтобы сделать это.
У вас есть один контейнер для apache, один контейнер для дискурса (или один с обоими), и вы не открываете никаких портов (не используйте -p
). Однако вы можете использовать инструкцию PORT
, если вы создаете изображение через файл докеров.
Как только контейнеры будут запущены, вы должны иметь к ним доступ через <ip container apache>:80
и <ip container discourse>:81
от хоста.
Теперь вы можете запустить новый контейнер с обратным прокси. Если вы использовали PORT
, вы можете даже связать контейнеры (то есть docker run -link <apache container name>:apache -link <discourse container name>:discourse
), чтобы иметь ips на env.
Вы можете использовать обратные прокси, такие как apache, nginx или hipache.
Когда вы запускаете обратный прокси-контейнер, вам необходимо указать -p 0.0.0.0:80:80
, чтобы иметь его доступную форму вне хоста.
Пример конфигурации Nginx для обратного прокси-сервера с использованием ссылок докеров: https://github.com/creack/prod/blob/master/nginx/nginx.conf#L27
Как правило, старайтесь не запускать пользовательские серверы на порту под 1024: http://www.w3.org/Daemon/User/Installation/PrivilegedPorts.html. Порты 8080 - 8090 подходят для запуска нескольких веб-серверов. – Popinou