📅  最后修改于: 2023-12-03 15:05:38.450000             🧑  作者: Mango
TutorialEdge
使用 Docker - JavaDocker 是一个开源的项目,目的是为了帮助更容易的创建、打包、部署和运行应用程序。Docker 提供一种将应用程序与所依赖的基础设施进行分离的方式,从而实现应用程序在不同环境中进行快速移植。
Java 是一种广泛使用的编程语言,常被用于构建 Web 应用程序和后端服务。Docker 可以用来构建和运行 Java 应用程序。
在本教程中,我们将使用 Docker 来构建和部署一个简单的 Java Web 应用程序。
在开始本教程之前,有一些前提条件需要满足:
首先,我们需要一个简单的 Java Web 应用程序。在此,我们选择一个 HelloWorld 程序,代码如下:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
将上述代码保存为 HelloWorld.java,并使用下面的命令来编译该程序:
javac HelloWorld.java
现在我们已经有了一个 HelloWorld.class 文件,我们可以将其打包为一个 JAR 文件:
jar cvf HelloWorld.jar HelloWorld.class
接下来,我们需要编写一个 Dockerfile,用来构建 Docker 镜像并运行该应用程序。在此,我们使用 OpenJDK 作为基础镜像,代码如下:
FROM openjdk:8-jdk-alpine
COPY HelloWorld.jar HelloWorld.jar
CMD ["java", "-jar", "HelloWorld.jar"]
该 Dockerfile 从 Docker Hub 拉取一个名为 openjdk:8-jdk-alpine 的镜像,并将 HelloWorld.jar 文件复制到容器中。然后,它使用 CMD 命令来运行 JAR 文件。
接下来,使用下面的命令来构建 Docker 镜像:
docker build -t helloworld .
-t 选项用于指定镜像名,例如 helloworld。
现在,使用下面的命令来运行该容器:
docker run helloworld
我们应该看到输出 "Hello World!"。
Docker Compose 是一个用于定义和运行多个 Docker 容器的工具。在此,我们将使用 Docker Compose 来管理我们的应用程序。
首先,创建一个名为 docker-compose.yml 的文件,并在该文件中添加以下内容:
version: "3"
services:
app:
build: .
ports:
- "8080:8080"
该文件指定了一个名为 app 的服务,并使用当前目录中的 Dockerfile 来构建镜像。
然后,我们将该应用程序绑定到主机上的 8080 端口。
接下来,使用下面的命令来启动该服务:
docker-compose up
我们应该看到类似于以下输出:
Starting tutorialedge_app_1 ... done
Attaching to tutorialedge_app_1
app_1 | Hello World!
tutorialedge_app_1 exited with code 0
现在,我们可以使用浏览器访问 http://localhost:8080,我们应该看到输出 "Hello World!"。
在本教程中,我们介绍了如何使用 Docker 和 Docker Compose 来构建和运行 Java Web 应用程序。