返回

从零开始!Docker 部署 Spring Boot 项目的终极指南

见解分享

简介

Docker 已成为现代软件开发中不可或缺的一部分,它提供了一种轻量级、可移植且隔离的环境来运行应用程序。对于需要在各种环境中一致部署应用程序的开发人员来说,它特别有用。本文将引导你完成使用 Docker 部署 Spring Boot 项目的整个过程,从安装 Docker 到配置和部署应用程序。

安装 Docker

在 MacOS 上安装 Docker

  1. 访问 Docker Desktop for Mac 页面。
  2. 下载并运行安装包,按照提示完成安装过程。

在 Windows 上安装 Docker

  1. 访问 Docker Desktop for Windows 页面。
  2. 下载并运行安装包,按照提示完成安装过程。

在 Linux 上安装 Docker

  1. 根据你的发行版,访问 Docker Engine Installation 页面。
  2. 按照页面上的说明进行安装。
  3. 添加当前用户到 Docker 组:
    sudo usermod -aG docker $USER
    
  4. 重新启动系统以应用更改。

构建 Docker 镜像

创建 Dockerfile

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

FROM openjdk:17-jre-slim
WORKDIR /app
COPY ./target/*.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]

构建 Docker 镜像

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

docker build -t my-spring-boot-app .

运行 Docker 容器

运行容器

使用以下命令启动一个容器:

docker run -p 8080:8080 my-spring-boot-app

访问应用程序

打开浏览器并访问:

http://localhost:8080

部署到 Docker Hub

创建 Docker Hub 帐户

如果你还没有 Docker Hub 帐户,请访问 Docker Hub 注册一个帐户。

登录 Docker Hub

docker login

输入你的 Docker Hub 用户名和密码进行登录。

推送镜像到 Docker Hub

首先为你的镜像打标签:

docker tag my-spring-boot-app your-dockerhub-username/my-spring-boot-app:latest

然后推送镜像到 Docker Hub:

docker push your-dockerhub-username/my-spring-boot-app:latest

故障排除

  • 容器无法启动:检查 Dockerfile 中的 ENTRYPOINTCMD 指令是否正确。确保你的 Spring Boot 应用程序能够正常运行。
  • 无法访问应用程序:检查容器是否在正确的端口上侦听,并且防火墙未阻止访问。你可以使用以下命令查看容器日志:
    docker logs <container_id>
    
  • Docker 无法连接到远程主机:检查 Docker 守护程序是否正在运行,并且主机允许外部连接。你可以使用以下命令检查 Docker 守护程序状态:
    systemctl status docker
    

结论

恭喜你!现在你已经了解了使用 Docker 部署 Spring Boot 项目的知识。通过遵循本文中的步骤,你可以轻松地将应用程序容器化并部署到各种环境中。通过充分利用 Docker 的强大功能,你可以提高应用程序的可移植性、可扩展性和可维护性。