开发者

本地使用Docker部署Java服务的详细步骤

开发者 https://www.devze.com 2025-10-20 10:27 出处:网络 作者: 自由的疯
目录引言1. 安装 docker1.1 Windows1.2 MACOS1.3 linux2. 配置 Docker2.1 配置镜像加速3. 创建 Java 应用3.1 编写 ​​Dockerfile​​4. 构建 Docker 镜像5. 运行 Docker 容器6. 访问 Java 应用7. 管理 Docker
目录
  • 引言
  • 1. 安装 docker
    • 1.1 Windows
    • 1.2 MACOS
    • 1.3 linux
  • 2. 配置 Docker
    • 2.1 配置镜像加速
  • 3. 创建 Java 应用
    • 3.1 编写 ​​Dockerfile​​
  • 4. 构建 Docker 镜像
    • 5. 运行 Docker 容器
      • 6. 访问 Java 应用
        • 7. 管理 Docker 容器和镜像
          • 7.1 列出所有运行的容器
          • 7.2 列出所有容器(包括停止的)
          • 7.3 停止容器
          • 7.4 删除容器
          • 7.5 列出所有镜像
          • 7.6 删除镜像
        • 8. 高级配置
          • 8.1 使用环境变量
          • 8.2 数据持久化
        • 9. 使用 Docker Compose 管理多容器应用
          • 9.1 创建 ​​docker-compose.yml​​ 文件
          • 9.2 启动 Docker Compose
        • 10. 总结

          引言

          在本地使用 Docker 部署 Java 服务是一个常见的做法,可以帮助开发者在本地环境中快速搭建、测试和调试 Java 应用程序。以下是详细的步骤指南,帮助你在本地计算机上使用 Docker 部署 Java 服务。

          1. 安装 Docker

          1.1 Windows

          1. 检查系统要求:确保你的 Windows 版本是 Windows 10 Pro、Enterprise 或 Education(Build 14393 或更高版本)。家庭版用户可能需要更新到 Windows 10 Pro。
          2. 启用 WSL 2:打开 PowerShell 以管理员身份运行以下命令:
          wsl --install
          
          1. 下载 Docker Desktop:访问 ​​Docker 官方下载页面​​,下载适用于 Windows 的 Docker Desktop 安装包。
          2. 安装 Docker Desktop:双击下载的安装包,按照提示完成安装。
          3. 启动 Docker Desktop:安装完成后,启动 Docker Desktop。首次启动时,可能需要几分钟时间www.devze.com来初始化。

          1.2 macOS

          1. 下载 Docker Desktop:访问 ​​Docker 官方下载页面​​,下载适用于 macOS 的 Docker Desktop 安装包。
          2. 安装 Docker Desktop:双击下载的 ​​.dmg​​ 文件,按照提示完成安装。
          3. 启动 Docker Desktop:安装完成后,启动 Docker Desktop。首次启动时,可能需要几分钟时间来初始化。

          1.3 Linux

          1. 更新系统
          sudo apt-get update
          sudo apt-get upgrade
          
          1. 安装必要的包
          sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
          
          1. 添加 Docker 的官方 GPG 密钥
          curl -fsSL https://download.docker.com/linux/Ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
          
          1. 设置稳定版存储库
          echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
          
          1. 安装 Docker Engine
          sudo apt-get update
          sudo apt-get install docker-ce docker-ce-cli containerd.io
          
          1. 启动 Docker 服务
          sudo sksQnFZblWystemctl start docker
          sudo systemctl enable docker
          

          2. 配置 Docker

          2.1 配置镜像加速

          为了提高 Docker 镜像的下载速度,可以配置国内的镜像加速器。编辑 ​​/etc/docker/daemon.json​​ 文件,添加如下内容:

          {
            "registry-mirrors": ["https://<Your-ID>.mirror.aliyuncs.com"]
          }
          

          然后重启 Docker 服务:

          sudo systemctl restart docker
          

          3. 创建 Java 应用

          假设你已经有一个简单的 Spring Boot 应用程序,目录结构如下:

          my-java-app/
          ├── src
          │   ├── main
          │   │   ├── java
          │   │   │   └── com
          │   │   │       └── example
          │   │   │           └── MyAppApplication.java
          │   │   └── resources
          │   │       └── application.properties
          ├── pom.XML
          └── Dockerfile
          

          3.1 编写 ​​Dockerfile​​

          在项目根目录下创建一个名为 ​​Dockerfile​​ 的文件,内容如下:

          # 使用官方的 OpenJDK 镜像作为基础镜像
          FROM openjdk:11-jdk-slim as build
          
          # 设置工作目录
          WORKDIR /app
          
          # 将项目文件复制到容器中
          COPY . .
          
          # 构建 Java 项目
          RUN ./mvnw clean package
          
          # 使用构建阶段生成的 jar 文件创建一个新的镜像层
          FROM openjdk:11-jre-slim
          
          # 设置工作目录
          WORKDIR /app
          
          # 将构建阶段生成的 jar 文件复制到新的镜像层中
          COPY --from=build /app/target/my-app.jar /app/my-app.jar
          
          # 暴露应用程序端口
          EXPOSE 8080
          
          # 启动应用程序
          ENTRYPOINT ["java", "-jar", "/app/my-app.jar"]
          

          4. 构建 Docker 镜像

          在项目根目录中运行以下命令来构建 Docker 镜像:

          docker build -t my-java-app .
          

          5. 运行 Docker 容器

          使用以下命令来运行 Docker 容器:

          docker run -d -p 8080:8080 --name my-java-app-container my-java-app
          

          其中 ​​-d​​​ 表示后台运行,​​-p 8080:8080​​​ 表示将宿主机的 8080 端口映射到容器的 8080 端口,​​--name my-java-app-container​​ 表示为容器指定一个名称。

          6. 访问 Java 应用

          打开浏览器,访问 ​​http://localhost:8080​​,你应该能看到你的 Java 应用程序的响应。

          7. 管理 Docker 容器和镜像

          7.1 列出所有运行的容器

          docker ps
          

          7.2 列出所有容器(包括停止的)

          docker ps -a
          

          7.3 停止容器

          docker stop <container-id>
          

          7.4 删除容器

          docker rm <container-id>

          7.5 列出所有镜像

          docker images
          

          7.6 删除镜像

          docker rmi <image-id>
          

          8. 高级配置

          8.1 使用环境变量

          通过环境变量可以灵活配置应用程序,避免硬编码。在 ​​Dwww.devze.comockerfile​​ 中定义环境变量:

          ENV SPRING_PROFILES_ACTIVE=prod
          

          在运行容器时,可以通过 ​​-e​​ 参数传递环境变量:

          docker run -d -p 8080:8080 -e SPRING_PROFILES_ACTIVE=prod --name my-java-app-container my-java-app
          

          8.2 数据持久化

          使用 Docker 卷(Volume)可以实现数据的持久化,避免数据丢失。在 ​​docker-compose.yml​​ 中定义卷,并挂载到容器中:

          version: '3.8'
          services:
            app:
              build: .
              ports:
                - "8080:8080"
              volumes:
                - app-data:/app/data
          volumes:
            app-data:
          

          9. 使用 Docker Compose 管理多容器应用

          假设你的 Java 应用程序依赖于 mysql 数据库,可以使用 Docker Compose 来管理多个服务。

          9.1 创建 ​​docker-compose.yml​​ 文件

          在项目根目录中创建一个名为 ​​docker-compose.yml​​ 的文件,内容如下:

          version: '3.8'
          services:
            app:
              build: .
              ports:
                - "8080:8080"
              depends_on:
                - db
              environment:
                SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/mydb
                SPRING_DA编程客栈TASOURCE_USERNAME: user
                SPRING_DATASOURCE_PASSWORD: pass
            db:
              image: mysql:5.7
              environment:
                MYSQL_DATABASE: mydb
                MYSQL_USER: user
                MYSQL_PASSWORD: pass
              ports:
                - "3306:3306"
              volumes:
                - db-data:/var/lib/mysql
          volumes:
            db-data:
          

          9.2 启动 Docker Compose

          在包含 ​​docker-compose.yml​​ 文件的目录中运行以下命令来启动所有服务:

          docker-compose up -d
          

          其中 ​​-d​​ 表示后台运行。

          10. 总结

          通过以上步骤,你可以在本地计算机上成功安装和配置 Docker,并使用 Docker 来部署 Java 服务。Docker 的轻量级、可移植和高效的特点使得开发者可以在任何支持 Docker 的环境中快速搭建和运行应用。希望这些步骤对你有所帮助,祝你在 Docker 学习和实践中取得成功!

          以上就是本地使用Docker部署Java服务的详细步骤的详细内容,更多关于Doandroidcker部署Java服务的资料请关注编程客栈(www.devze.com)其它相关文章!

          0

          精彩评论

          暂无评论...
          验证码 换一张
          取 消

          关注公众号