Docker部署SpringBoot项目到云服务器

前言

随着云计算的普及,越来越多的开发者选择将应用程序部署到云端。Docker作为一种轻量级的容器化技术,为开发者提供了快速、便捷的部署方案。本文将探讨如何使用Docker将SpringBoot应用程序部署到云服务,从而实现高效、可靠的运行环境。

一、打包运行后端项目

1.打包到服务器步骤

1. 1使用idea右侧Maven的package命令

1.2 在服务器的/usr/local/下面创建名为docker的文件夹

1.3 将打包好的jar包传到服务器上面的/usr/local/docker下面

1.4 编写Dockerfile,同时将编写好的Dockerfile传输到服务器的/usr/local/docker下面

复制代码
```dockerfile
FROM openjdk:8
VOLUME /tmp
ADD aurora-springboot-0.0.1.jar blog.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/blog.jar"]
```

注意这里有可能你没下载jdk会报错,Dockerfile文件只需要上传到指定目录下即可,不需要手动执行其他操作。

2.编写aurora-start.sh,同时将编写好的aurora-start.sh上传到服务器的/usr/local/docker下面

复制代码
```shell
SOURCE_PATH=/usr/local/docker
SERVER_NAME=aurora-springboot-0.0.1.jar
TAG=latest
SERVER_PORT=8080
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')
if [ -n "$CID" ]; then
  echo "存在容器$SERVER_NAME,CID-$CID"
  docker stop $CID
  echo "成功停止容器$SERVER_NAME,CID-$CID"
  docker rm $CID
  echo "成功删除容器$SERVER_NAME,CID-$CID"
fi
if [ -n "$IID" ]; then
  echo "存在镜像$SERVER_NAME:$TAG,IID=$IID"
  docker rmi $IID
  echo "成功删除镜像$SERVER_NAME:$TAG,IID=$IID"
fi
echo "开始构建镜像$SERVER_NAME:$TAG"
cd $SOURCE_PATH
docker build -t $SERVER_NAME:$TAG .
echo "成功构建镜像$SERVER_NAME:$TAG"
docker run --restart=always --name aurora-springboot-0.0.1.jar -d -p 8080:8080 aurora-springboot-0.0.1.jar:latest
echo "成功创建并运行容器$SERVER_NAME"
```

注意事项:sh文件需要用notepad++转为Unix格式**

具体操作:点开notepad++中的编辑 ---> 文档格式转换 --->转为Unix

3.cd到/usr/local/docker下面 ,执行如下命令打包docker镜像文件

复制代码
sh aurora-start.sh

4.启动容器

复制代码
docker run  --name aurora-springboot-0.0.1.jar -d -p 8080:8080 aurora-springboot-0.0.1.jar:latest

这样后端项目就可以在服务器上跑起来了

5.访问测试(浏览器上访问)

ip:8080

相关推荐
二哈赛车手4 小时前
新人笔记---ApiFox的一些常见使用出错
java·笔记·spring
栗子~~5 小时前
JAVA - 二层缓存设计(本地缓冲+redis缓冲+广播所有本地缓冲失效) demo
java·redis·缓存
YDS8295 小时前
DeepSeek RAG&MCP + Agent智能体项目 —— RAG知识库的搭建和接口实现
java·ai·springboot·agent·rag·deepseek
wangqiaowq5 小时前
windows下nginx的安装
linux·服务器·前端
未若君雅裁6 小时前
MyBatis 一级缓存、二级缓存与清理机制
java·缓存·mybatis
cen__y7 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
AI人工智能+电脑小能手7 小时前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
阿维的博客日记7 小时前
Nacos 为什么能让配置动态生效?(涉及 @RefreshScope 注解)
java·spring
雨辰AI7 小时前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
辰海Coding9 小时前
MiniSpring框架学习-完成的 IoC 容器
java·spring boot·学习·架构