Centos7部署springboot项目 启动jar包、以及docker 启动jar包

博客介绍了普通方式和Docker方式运行Jar包的步骤。普通方式需创建Spring Boot项目、打包、放至服务器、安装JDK等;Docker方式要拉取镜像、创建Dockerfile、构建并启动镜像。还针对Docker启动后页面访问不到的问题给出解决办法,如开放端口权限、安装docker - machine等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

普通方式运行jar包

1.创建一个简单的springboot项目 并打包

参考https://blog.youkuaiyun.com/weixin_40009737/article/details/105773950

2.将jar放到服务器上

3.centos7环境安装jdk

参考https://blog.youkuaiyun.com/weixin_40009737/article/details/90234069安装jdk

4.启动jar包

 cd /usr
 nohup java -jar spring-boot-0.0.1-SNAPSHOT.jar &


5.查看端口号

cat nohup.out

6.在浏览器IP+端口号

 

docker 启动jar包

1.拉取 java 镜像

docker pull java:8

2.在 jar 包所在的目录下创建一个名为 Dockerfile 的文件,文件内容如下:

# 基于jdk 镜像
FROM java:8
 
# 将本地文件夹挂在到当前容器
VOLUME /tmp
 
# 复制文件到容器
ADD demo-0.0.1-SNAPSHOT.jar app.jar
 
# 声明需要暴露的端口
EXPOSE 8080
 
# 配置容器启动后执行的命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

3.构建镜像

参数说明:

  • -t 表示将新镜像命名为 demo_server
  • 末尾的 . 指明 build context 为当前目录
  • Docker 默认会从 build context 中查找 Dockerfile 文件,我们也可以通过 -f 参数指定 Dockerfile 的位置。
docker build -t demo-server .

4.docker images 命令检查下镜像是否已经成功制作完毕

docker images | grep demo

5.启动镜像

docker run -it -d -p 8080:8080  demo-server

6.查看镜像启动

docker ps | grep demo

7.擦看日志

 

docker logs clever_meitner

docker启动jar包正常单页面访问不到  解决办法如下:

 

.检查原因,为什么容器启动成功但是浏览器访问不了
(1)进入容器,执行  

docker exec -it 22c586000c8b bash

访问localhost:8080/hello

curl localhost:8080/hello

(2)再次在外部访问 还是错误

出现错误,拒绝连接。应该是开放容器端口到宿主机端口8081没有开放权限,被docker防火墙拦截了,所以接下来就对8081端口开放访问权限
方法:
首先 执行exit 退出容器
将已启动得容器停止并删除
 

docker stop 22c586000c8b 
docker rm 22c586000c8b 

 


执行以下命令重新执行

 

docker run --privileged=true -d -p 8081:8081/tcp --name server demo-server

(3)结果重新访问还是报错

因为我的电脑是win10 家庭版,所以用得是docker toolbox,需要把ip换成(

)的IP

docker-machine ip default ip地址

如果报错 -bash: -bash:: command not found则需要安装docker-machine

1.安装docker-machine

base=https://github.com/docker/machine/releases/download/v0.14.0 &&
  curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
  sudo install /tmp/docker-machine /usr/local/bin/docker-machine

2.查看安装成功

docker-machine version

 

 

使用浏览器访问也成功了

 

 

### 部署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文档描述的方式依次激活各项功能模块。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值