Docker 部署 SpringBoot 项目超详细教程
Docker 部署 SpringBoot 项目超详细教程一篇适合新手的 Docker 部署 SpringBoot 实战教程包含Docker 安装镜像加速SpringBoot 打包Dockerfile 编写构建镜像容器部署日志查看防火墙开放常见问题解决图文并茂保姆级教学。本文假设你已拥有一台安装了 Docker 的 CentOS 8 服务器直接聚焦于如何将 SpringBoot 应用打包成 Docker 镜像并运行。全程提供清晰的操作步骤与生产环境建议新手也能无痛上手。一、Docker 核心概念速览概念说明类比镜像Image包含应用及其运行环境的只读模板安装包容器Container镜像的运行实例运行中的程序Dockerfile构建镜像的步骤描述文件安装说明书二、准备工作项目 jar 包在本地通过mvn package打包 SpringBoot 项目生成可执行 jar 文件例如springboot-ai-chatbot-0.0.1-SNAPSHOT.jar。在服务器上创建专属目录并将 jar 上传到此目录。mkdir-p/usr/local/springboot-ai-chatbotcd/usr/local/springboot-ai-chatbot# 通过 SFTP 等工具将 jar 包上传至此三、编写 Dockerfile在项目目录下创建Dockerfile文件viDockerfile填入以下内容# jdk FROM eclipse-temurin:17 # 作者 LABEL maintainernicky # 工作目录 WORKDIR /app # 拷贝 jar COPY springboot-ai-chatbot-0.0.1-SNAPSHOT.jar app.jar # 暴露端口 EXPOSE 8080 # 时区可选 ENV TZAsia/Shanghai # 启动命令 ENTRYPOINT [java,-jar,/app/app.jar]逐行解释FROM选择 Amazon Corretto 17 镜像体积小且包含 JDK17。WORKDIR指定工作目录后续命令均在该目录下执行。COPY将宿主机上的 jar 拷贝进镜像。EXPOSE告知 Docker 容器内应用监听 8080 端口。ENTRYPOINT容器启动时执行java -jar app.jar启动应用。四、构建 Docker 镜像在Dockerfile所在目录执行dockerbuild-tspringboot-ai-chatbot:1.0.注意命令末尾的.表示使用当前目录作为构建上下文不可省略。构建成功后查看本地镜像dockerimages输出示例REPOSITORY TAG IMAGE ID CREATED SIZE springboot-ai-chatbot 1.0 abc123def456 10 seconds ago 350MB五、运行容器使用以下命令启动容器dockerrun-d\--namespringboot-ai-chatbot\-p8080:8080\--restartalways\springboot-ai-chatbot:1.0参数详解参数作用-d后台运行容器--name为容器起一个名字便于后续管理-p 宿主机端口:容器端口将宿主机 8080 端口映射到容器 8080 端口--restartalways容器异常退出或 Docker 重启后自动拉起容器检查容器是否正常运行dockerps看到STATUS为Up即表示成功。六、验证部署与查看日志6.1 访问应用在浏览器中访问http://服务器IP:8080。若无法访问请先开放防火墙端口firewall-cmd--permanent--add-port8080/tcp firewall-cmd--reload6.2 查看实时日志dockerlogs-fspringboot-ai-chatbot当终端出现Started XxxApplication字样时说明 SpringBoot 启动成功。七、生产环境优化目录挂载将容器内的日志和配置文件目录挂载到宿主机便于持久化和动态调整配置。先创建宿主机目录mkdir-p/usr/local/springboot-ai-chatbot/{logs,config}重新启动容器时加入-v参数# 先删除旧容器dockerrm-fspringboot-ai-chatbot# 带挂载启动dockerrun-d\--namespringboot-ai-chatbot\-p8080:8080\-v/usr/local/springboot-ai-chatbot/logs:/app/logs\-v/usr/local/springboot-ai-chatbot/config:/app/config\--restartalways\springboot-ai-chatbot:1.0/app/logs目录挂载后应用日志会直接写入宿主机方便日志收集。/app/config目录可放入application.yml修改后重启容器即可应用新配置。八、常用 Docker 管理命令操作命令查看运行中容器docker ps停止容器docker stop springboot-ai-chatbot启动已停止的容器docker start springboot-ai-chatbot重启容器docker restart springboot-ai-chatbot强制删除容器docker rm -f springboot-ai-chatbot删除镜像docker rmi springboot-ai-chatbot:1.0进入容器内部调试docker exec -it springboot-ai-chatbot /bin/bash九、常见问题排查1. 构建镜像时拉取基础镜像超时现象i/o timeout解决为 Docker 配置国内镜像加速。编辑/etc/docker/daemon.json添加{registry-mirrors:[https://docker.m.daocloud.io,https://dockerproxy.com]}然后重启 Dockersystemctl restart docker。2. 端口无法访问检查容器是否运行docker ps检查防火墙firewall-cmd --list-ports确保 8080 已放行确认端口映射正确docker port springboot-ai-chatbot3. 容器启动后立即退出使用docker logs springboot-ai-chatbot查看错误信息常见原因包括jar 包损坏、端口冲突、数据库连接失败等根据日志提示修正后重新构建镜像即可。十、总结Docker 部署 SpringBoot 项目的核心流程仅需四步编写 Dockerfile → docker build → docker run → docker logs 验证掌握这一流程后你不仅能轻松部署单体应用还将为后续微服务、CI/CD 流水线、Kubernetes 容器编排打下坚实基础。如果觉得教程有用欢迎分享给更多需要的小伙伴

相关新闻

最新新闻

日新闻

周新闻

月新闻