阅读(2452) (9)

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

2018-06-21 10:17:49 更新

您可以使用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应用程序

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