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

普通方式运行jar包

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

参考https://blog.csdn.net/weixin_40009737/article/details/105773950

2.将jar放到服务器上

3.centos7环境安装jdk

参考https://blog.csdn.net/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

 

 

使用浏览器访问也成功了

 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用 Jenkins 和 Docker 进行 CentOS 部署 Spring Boot 项目的详细步骤和命令: 1. 在 CentOS 中安装 DockerDocker Compose ```bash # 安装 Docker sudo yum update sudo yum install docker # 安装 Docker Compose sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ``` 2. 在 CentOS 中拉取 Docker 镜像 ```bash # 从 Docker 仓库中拉取镜像 sudo docker pull your-docker-registry/image-name:tag ``` 3. 在 CentOS 中运行 Spring Boot 镜像 ```bash # 运行 Spring Boot 镜像 sudo docker run -d -p 8080:8080 your-docker-registry/image-name:tag # 如果你的 Spring Boot 应用需要使用数据库,你需要为其配置一个数据库服务。你可以使用 Docker Compose 来管理容器编排。 # 在服务器上创建一个文件夹来存储 Docker Compose 配置文件 mkdir ~/docker-compose # 在该文件夹中创建一个 docker-compose.yml 文件 nano ~/docker-compose/docker-compose.yml # 编辑该文件并添加以下内容: version: "3" services: app: image: your-docker-registry/image-name:tag ports: - "8080:8080" db: image: postgres environment: POSTGRES_USER: your-db-user POSTGRES_PASSWORD: your-db-password POSTGRES_DB: your-db-name # 启动 Docker Compose cd ~/docker-compose sudo docker-compose up -d # 如果你需要停止 Docker Compose sudo docker-compose down ``` 4. 在 Jenkins 中配置 Maven 插件和 Docker 插件 - 在 Jenkins 中安装 Maven 插件和 Docker 插件。 - 在 Jenkins 中配置 Docker 插件,确保 Jenkins 可以与 Docker 交互。 5. 在 Jenkins 中创建一个新的构建项目 - 在 Jenkins 中创建一个新的 Maven 项目,并配置 Git 代码库以获取源代码。 - 在构建项目中配置 Maven 构建步骤,构建出可执行的 Spring Boot jar 包。 - 在构建项目中添加一个后置操作步骤,使用 Docker 插件进行 Docker 镜像的构建。你需要为 Docker 镜像指定一个名称和标签,并指定构建上下文。 - 在构建项目中添加另一个后置操作步骤,使用 Docker 插件将构建好的镜像推送到 Docker 仓库中。 6. 在目标服务器上使用 Docker 运行 Spring Boot 镜像 - 在目标服务器上拉取构建好的 Spring Boot 镜像。 - 在目标服务器上使用 Docker 运行 Spring Boot 镜像,你可以使用 Docker Compose 或 Docker Stack 进行容器编排和管理。 以上是使用 Jenkins 和 Docker 进行 CentOS 部署 Spring Boot 项目的详细步骤和命令,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值