当前位置: 代码网 > it编程>编程语言>Java > 本地使用Docker部署Java服务的详细步骤

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

2025年10月20日 Java 我要评论
引言在本地使用 docker 部署 java 服务是一个常见的做法,可以帮助开发者在本地环境中快速搭建、测试和调试 java 应用程序。以下是详细的步骤指南,帮助你在本地计算机上使用 docker 部

引言

在本地使用 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。首次启动时,可能需要几分钟时间来初始化。

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 systemctl 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 使用环境变量

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

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_datasource_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服务的详细步骤的详细内容,更多关于docker部署java服务的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com