Браузеры могут запускать очень ограниченный набор языков исполнения; по сути только Javascript и вещи, которые можно перекомпилировать в Javascript. Не существует универсального способа взять запущенное настольное приложение и опубликовать его в браузере.
Докер здесь просто промежуточный слой. Это очень хорошо для таких вещей, как HTTP-серверы, которые являются автономными, за исключением сетевого порта; хорошо для приложений командной строки (если вы не против запустить его как root с командной строкой в три раза дольше, он работает нормально); и плохо для приложений с графическим интерфейсом (работает только в Linux, командные строки длинные и непонятные, и все еще с большой вероятностью будут выглядеть иначе). Это не дает никакой магии, чтобы пересечь эти слои.
Возможно, вам удастся найти какое-то существующее программное обеспечение, которое может заполнить некоторые из этих пробелов; возможно, X-сервер на основе браузера или одна из полнофункциональных систем виртуальных машин может отображать рабочий стол виртуальной машины в браузере, или, возможно, вы сможете использовать полностью апробированную систему Java-апплетов, или, может быть, есть Java слой, который предоставляет клиент на основе веб-сокета и позволяет запускать собственное приложение с графическим интерфейсом Java с небольшими изменениями.
Я бы посоветовал вам сначала заставить ваше приложение работать и решить проблему «как мне на самом деле заставить его выглядеть так, как я хочу», и только потом вводить Docker, если это уместно. Слой разделения, который он обеспечивает, может сделать многие вещи более сложными, особенно когда вы активно разрабатываете или исследуете неизвестное пространство.