Как использовать встроенную в Docker библиотеку и bin на хост-машине
Мой вопрос заключается в том, как использовать встроенное в Docker программное обеспечение и библиотеку на хост-компьютере. Библиотека, поставляемая докером, может зависеть от компиляции другого инструмента / библиотеки. этот вопрос возникает у меня, когда я пробовал некоторые проекты с открытым исходным кодом, например, openj9.
Например, я собрал одну виртуальную машину openJ9, виртуальную машину Java, аналогичную виртуальной машине HotSpot, в контейнере Docker, следуя ( инструкция по сборке). Процесс в порядке, но следующая проблема заключается в том, как я могу настроить встроенную в контейнер jvm, находящуюся в ~/openj9-openjdk-jdk8/build/linux-x86_64-normal-server-release/
внутри контейнера, в затмении, которое находится на главном компьютере?
Я могу ошибаться при использовании docker, чувствуя, что может возникнуть конфликт, так как среда контейнера для jvm, построенной из контейнера, может отличаться от среды хост-машины.
Так может кто-нибудь объяснить, как правильно использовать контейнерную сборку jvm для моего затмения на хост-машине? Спасибо
1 ответ
Здесь есть два разных режима использования. Я не уверен, о каком из них ты спрашиваешь. Может быть, вы спрашиваете об обоих.
Если вы хотите запустить JVM внутри контейнера, в котором вы его построили, то у вас тот же случай, что и при запуске JVM на удаленном сервере, и вы хотите подключить к нему локальный Eclipse. Я использую IntelliJ, у которого есть несколько способов позволить вам развертывать и отлаживать удаленные Java-программы или библиотеки. Каким бы ни был правильный способ сделать это в Eclipse, то же самое можно применить к Java-программе, работающей в локальном контейнере Docker.
Если вы говорите о том, чтобы взять пакет JVM, который вы создали внутри контейнера, вытащить его из контейнера и запустить на локальной рабочей станции, это будет работать так же, как и в любом другом случае, когда вы создаете исполняемый файл или библиотеку на одном машина для использования на другом. У вас будет больше шансов сделать это без осложнений, если вы будете использовать одну и ту же базовую ОС в обеих средах, как, например, Ubuntu похожих версий как внутри, так и снаружи контейнера. Вы не сможете создать двоичный файл JVM внутри Ubuntu, работающий в контейнере Docker, а затем вытащить его и запустить на своей рабочей станции Windows, на которой размещается Docker.
На самом деле... Я понимаю, что есть третий вариант. Если вы хотите запустить вашу Java-программу в контейнере Docker, возможно, Eclipse имеет специальную поддержку для этого... развертывания и запуска Java-программы на хосте Docker, работающем на той же рабочей станции, что и Eclipse. Он будет делать в основном то же самое, что и для удаленного сервера, но он вполне может упростить этот вариант использования, зная, что вы нацелены на локальный контейнер Docker.