使用 Docker 部署Java

247 阅读2分钟

使用 Docker 部署

  1. 准备 Java 应用 确保你的 Java 应用已经打包成可执行的 JAR 文件。例如,使用 Maven 或 Gradle 进行打包: Maven:在项目根目录下执行 mvn clean package 命令。 Gradle:执行 gradle build 命令。
  2. 创建 Dockerfile 在项目根目录下创建一个名为 Dockerfile 的文件,内容如下: Dockerfile

使用官方的 Java 基础镜像

FROM openjdk:11-jre-slim

# 设置工作目录
WORKDIR /app

# 将打包好的 JAR 文件复制到容器中
COPY target/your-application.jar app.jar

# 暴露应用运行的端口
EXPOSE 8080

# 定义容器启动时执行的命令
CMD ["java", "-jar", "app.jar"]

请将 your-application.jar 替换为你实际生成的 JAR 文件名称,8080 替换为你的 Java 应用实际监听的端口。

  1. 构建 Docker 镜像 在包含 Dockerfile 的目录下,打开终端并执行以下命令来构建 Docker 镜像:

    docker build -t your-image-name:tag .
    

    your-image-name 是你给镜像指定的名称,例如 my-java-app。 tag 是镜像的标签,例如 1.0。 . 表示使用当前目录作为构建上下文。

  2. 保存和传输 Docker 镜像 构建完成后,你可以将镜像保存为一个压缩文件,然后传输到目标服务器:

    docker save -o your-image-name.tar your-image-name:tag
    

    将生成的 your-image-name.tar 文件传输到目标服务器。

  3. 在目标服务器上加载和运行镜像 在目标服务器上,使用以下命令加载镜像:

    docker load -i your-image-name.tar
    

然后运行容器:

docker run -d -p 8080:8080 your-image-name:tag

-d 表示在后台运行容器。 -p 8080:8080 表示将宿主机的 8080 端口映射到容器的 8080 端口。

使用 Docker Compose 部署

  1. 创建 docker-compose.yml 文件 在项目根目录下创建一个名为 docker-compose.yml 的文件,内容如下:
    version: '3'
    services:
    java-app:
        image: your-image-name:tag
        ports:
        - "8080:8080"
        restart: always
    

请将 your-image-name:tag 替换为你实际构建的 Docker 镜像名称和标签。

  1. 在目标服务器上部署 将 docker-compose.yml 文件和之前保存的 your-image-name.tar 文件传输到目标服务器。在目标服务器上加载镜像:
    docker load -i your-image-name.tar
    
    然后使用 Docker Compose 启动容器:
    docker-compose up -d
    
    -d 选项表示在后台运行容器。 通过以上步骤,你可以将 Java 应用以容器的形式部署到别人的服务器上,同时避免暴露源码。