返回
从零开始!Docker 部署 Spring Boot 项目的终极指南
见解分享
2023-10-20 12:55:10
简介
Docker 已成为现代软件开发中不可或缺的一部分,它提供了一种轻量级、可移植且隔离的环境来运行应用程序。对于需要在各种环境中一致部署应用程序的开发人员来说,它特别有用。本文将引导你完成使用 Docker 部署 Spring Boot 项目的整个过程,从安装 Docker 到配置和部署应用程序。
安装 Docker
在 MacOS 上安装 Docker
- 访问 Docker Desktop for Mac 页面。
- 下载并运行安装包,按照提示完成安装过程。
在 Windows 上安装 Docker
- 访问 Docker Desktop for Windows 页面。
- 下载并运行安装包,按照提示完成安装过程。
在 Linux 上安装 Docker
- 根据你的发行版,访问 Docker Engine Installation 页面。
- 按照页面上的说明进行安装。
- 添加当前用户到 Docker 组:
sudo usermod -aG docker $USER
- 重新启动系统以应用更改。
构建 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 中的
ENTRYPOINT
或CMD
指令是否正确。确保你的 Spring Boot 应用程序能够正常运行。 - 无法访问应用程序:检查容器是否在正确的端口上侦听,并且防火墙未阻止访问。你可以使用以下命令查看容器日志:
docker logs <container_id>
- Docker 无法连接到远程主机:检查 Docker 守护程序是否正在运行,并且主机允许外部连接。你可以使用以下命令检查 Docker 守护程序状态:
systemctl status docker
结论
恭喜你!现在你已经了解了使用 Docker 部署 Spring Boot 项目的知识。通过遵循本文中的步骤,你可以轻松地将应用程序容器化并部署到各种环境中。通过充分利用 Docker 的强大功能,你可以提高应用程序的可移植性、可扩展性和可维护性。