codecamp

Docker:在容器中运行Java应用程序

您可以使用Docker在特定的运行时环境中运行容器中的Java应用程序。本教程介绍如何创建Dockerfile,以便在OpenJDK 8的容器中运行简单的Java应用程序。

示例应用程序由一个Main.java文件组成,该文件打印Hello World!到控制台并退出。编译输出位于/out/production/DockerJavaApp下的项目目录中。

在容器中运行Java应用程序

在容器中运行Java应用程序

  1. 在项目工具窗口中,右键单击项目名称,指向“新建(New)”并单击“文件(File)”。
  2. 在“新建文件(New File)”对话框中,键入Dockerfile并单击“确定”。
  3. 在新的Dockerfile中键入以下内容:

    FROM openjdk:8
    COPY ./out/production/DockerJavaApp/ /tmp
    WORKDIR /tmp
    ENTRYPOINT ["java","Main"]
  4. 单击“运行Docker(Run on Docker)”阴影图标( ),然后单击“'Docker'上的运行(Run on 'Docker')”。
    Docker:在容器中运行Java应用程序

    IntelliJ IDEA创建一个Docker运行配置,它从Dockerfile构建一个映像,然后根据该映像运行一个容器。输出目录(Main.class)的内容被复制到容器中的/tmp目录中。然后它从/tmp目录中运行该java Main命令。因此,您应该看到Hello World!打印到容器日志。

例如,您可以与其他人分享图像,以准确演示您的应用程序如何运行,而无需安装必要的运行时(仅需要Docker)。

要共享构建的图像,您需要配置一个Docker注册表 ,您可以在其中拥有图像推送权限。例如,您可以在Docker Hub上创建一个帐户, 并使用公共或私人存储库共享图像,或设置您自己的Docker注册表。

将您的Java应用程序作为Docker镜像共享

  1. 在Docker工具窗口中,找到从Dockerfile构建的图像。默认情况下,它由唯一图像ID指定,因为未提供图像标记。您可以编辑相应的运行配置并指定您选择的图像标签。要找出图像ID,请选择您从Dockerfile运行的容器并打开“属性(Properties)”选项卡。
  2. 右键单击具有所需ID的图像,然后在上下文菜单中单击“推送图像(Push Image)”。
  3. 在“推送图像(Push Image)”对话框中,选择您的注册表,指定图像的存储库名称和标记,然后单击“确定”。
                     Docker:在容器中运行Java应用程序

一旦图像被推送到注册表中,任何有权访问的人都可以将其拉出并从图像中运行一个容器。

在Docker容器中运行数据库
构建一个Web应用程序工件
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }