Docker部署Springboot项目(CentOS)

文章详细介绍了如何在Linux系统中下载并设置Docker自启动,然后下载Maven并配置环境变量,接着演示了如何使用Maven打包SpringBoot项目。此外,还讲解了编写Dockerfile来创建镜像,并启动Docker容器运行SpringBoot应用的方法,最后列举了一些常用的Docker命令。

1.下载docker并设置自启动

yum下载docker

yum install -y docker-ce

下载完之后可以使用docker -version查看版本,如果出现版本号则下载成功:
image.png
也可以通过宝塔等软件自行启动docker管理器验证

systemctl start docker.service
systemctl enable docker.service

如果启动docker报错 AttributeError: ‘NoneType‘ object has no attribute xxxx,可以尝试上面的命令。

2.下载maven并配置环境变量

访问maven官网:https://maven.apache.org/download.cgi
下载压缩包,下载第一个就行,后缀为tar.gz的
image.png

mkdir /usr/local/maven(先创建maven文件夹)
cd /usr/loacl/maven(进入文件夹)

再把上传到服务器上,这里我用的Xftp,可以自行抉择
解压

tar -zxvf apache-maven-3.9.3-bin.tar.gz

添加阿里云镜像,修改/usr/local/maven/apache-maven-3.9.3/conf目录下的settings.xml,在mirrors节点下添加

<mirror> 
<id>aliyun-maven</id> 
<mirrorOf>*</mirrorOf> 
<name>aliyun maven</name> 
<url>http://maven.aliyun.com/nexus/content/groups/public</url> 
</mirror>

配置环境变量
打开环境变量vim /etc/profile,添加如下内容:(vim不可用可以用vi),i键编辑

MAVEN_HOME=/usr/local/maven/apache-maven-3.9.3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

保存并重启

:wq(vim中的保存并退出)
source /etc/profile

mvn -v来验证,出现下图代表成功
image.png
注:如果没有JAVA环境,可能会报错,安装Java环境就ok

3.将spring boot项目打包

这里说明使用idea打包,其余的方式可以自行搜索
点开右上角的maven标识
image.png
此时经过maven的编译打包,即可在我们项目路径的target目录下生成不包含依赖的项目jar包。
image.png

4.编写Dockerfile文件

新建一个名为Dockerfile的文件,注意没有后缀名

# 镜像java版本,你可以看着项目里的pom.xml文件确定
FROM openjdk:17
VOLUME /tmp 
# 将jar包添加到容器中并更名为app.jar
ADD demo-0.0.1-SNAPSHOT.jar app.jar 
EXPOSE 8080
# 容器启动命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ,注意:这里的包名要和pom文件中的包名一致,后面的app,jar可以自己取

5.docker!启动!

将SpringBoot的jar包和Dockerfile文件一起放在linux系统下任意一个目录下
比如:
image.png
在这个文件夹目录下执行以下命令,将生成镜像

docker build . -t app   注意app是前面自己起的名字

查看镜像

docker images

启动docker

docker run -d --name app8080 -p 8080:8080 app

这时已经启动了,可以用下面的命令来看springboot的日志

docker logs 镜像名

附:docker常用命令

启动docker
systemctl start docker

关闭docker
systemctl stop docker 

重启docker
systemctl restart docker 

设置docker开机自启动
systemctl enable docker

查看docker运行状态
systemctl status docker 

查看docker镜像列表
docker  images

拉取镜像
docker pull 镜像名 (pull最新版本)
docker pull 镜像名:tag (tag为版本号)

删除一个镜像
docker rmi -f 镜像名/镜像ID

删除多个镜像 其镜像ID或镜像用用空格隔开即可 
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID

强制删除
docker image rm 镜像名称/镜像ID

查看正在运行的容器
docker  ps

查看所有容器包括正在运行和停掉的容器 
docker  ps  -a

运行一个容器
# -it 表示与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行)  --name 给要运行的容器 起的名字  /bin/bash  交互路径
docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash  
### 部署Spring Boot和Vue应用程序到CentOS 7 #### 准备工作 为了在CentOS 7上成功部署Spring Boot和Vue应用,需先确认已安装必要的基础环境。这包括但不限于Docker及其版本应不低于18.03.0-ce[^1]。 #### 创建项目文件夹并配置Dockerfile 对于Spring Boot部分,在项目的根目录下创建名为`Dockerfile`的文件: ```dockerfile FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"] ``` 针对前端Vue.js构建产物,则通常会有一个独立的服务来托管静态资源。这里假设已经通过npm或yarn完成了生产模式下的打包操作,并且所有编译后的HTML/CSS/JS都位于`dist`文件夹内。此时可利用Nginx作为Web Server发布这些静态页面: ```dockerfile # 使用官方nginx镜像为基础镜像 FROM nginx:alpine # 将本地dist目录中的内容复制到容器内的默认网站路径下 COPY ./dist /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] ``` #### 编写docker-compose.yml实现服务组合启动 在同一级目录新建`docker-compose.yml`用于定义多个关联的应用组件和服务依赖关系: ```yaml version: '3' services: backend: image: spring-latest} build: context: . dockerfile: Dockerfile ports: - "8080:8080" environment: SPRING_PROFILES_ACTIVE: prod depends_on: - db frontend: image: vue-front:${TAG:-latest} build: context: ../frontend/ dockerfile: Dockerfile.frontend ports: - "80:80" depends_on: - backend db: image: mysql:5.7 volumes: - mysqldata:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: example volumes: mysqldata: ``` 上述配置说明了三个主要组成部分——后端API(`backend`)、前端UI(`frontend`)以及数据库实例(`db`)之间的交互方式。其中`${TAG}`变量允许指定不同的标签以便区分各个版本;而`depends_on`字段则指定了各服务间的加载顺序[^4]。 #### 构建与运行 完成以上准备工作之后就可以执行如下命令来进行整个系统的集成测试了: ```bash cd path/to/project/root docker-compose up --build ``` 此指令将会自动拉取所需的底层镜像、按照给定的Dockerfiles分别构建自定义映像、最后依照YAML文档描述的方式依次激活各项功能模块。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值