虚拟机上进行java项目部署

虚拟机上进行java项目部署,自己的一点总结,

一起学习,一起进步,一起成长!

目录

文章目录

虚拟机上进行java项目部署

1.JDK安装

2.TOMCAT安装

3.DOCKER

1、YUM安装

2、docker部署java

4、最后

 

【yzh2022.9】

1.JDK安装

1、我们安装 VM 的时候,使用命令 java -version 查看

 java -version

这里显示 JDK 的信息是 openjdk version "1.8.0_262" , 我们会发现这个 JDK 是 VM 自带的

当然你也可以通过命令 rpm -qa | grep java 来查看相关的 java 信息

 rpm -qa | grep java

【如果不使用自带的jdk】

2、使用命令 yum -y remove java* 进行卸载 VM 自带的 JDK

 yum -y remove java*

虚拟机上进行java项目部署_第1张图片

 

3、删除完成之后,再次查看是否还存在 JDK

4、接着你就可以安装自己的需要的 JDK 版本了

我们开发java程序必须要的环境!

  1. 下载jdk rpm.去oralce官网下载Java Downloads | Oracle

  2. 安装java环境

 # 检查当前系统是否存在java环境 
 java -version
 # 如果有的话就卸载
 rpm -qa|grep jdk # 检测jdk版本信息
 ​
 rpm -e --nodeps jdk_ #强制卸载
 ​
 # 卸载完毕后即可安装jdk
 rpm -ivh rpm包

虚拟机上进行java项目部署_第2张图片

!!!rpm 不需要配置环境,也不用source!!这一步可以不需要做,如果想要尝试,可能会逝

但是在解压的时候,像使用docker进行springboot项目部署的时候,解压之后就需要进行环境变量的配置

3.环境变量

配置环境变量: /etc/profile在文件的最后面增加java的配置和window安装环境一样

vim /etc/profilevim /etc/profile 进入配置文件

末尾添加

 export JAVA_HOME=/usr/java/jdk1.8.0_341-amd64
 export PATH=$PATH:$JAVA_HOME/bin
 export CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib

保存退出即可

刷新配置 source /etc/profile




测试jdk 1.用文本编辑器新建一个test.java文件,在其中输入以下代码并保存:

 public class test {  
     public static void main(String args[]){
         System.out.println("Linux-Jdk");
     }
 }

2.编译:在shell终端执行命令javac test.java

3.运行:在shell终端执行命令java test

当shell下出现“Linux-Jdk”字样则jdk运行正常。

发布一个项目

 # 开启防火墙
 Firewalls-cmd --zone=public --add-port=9000/tcp -permanent
 # 重启防火墙
 systemctl restart firewalld.service
 # 查看所有开启的端口,如果是阿里云,需要配置安全组规则!
 firewall-cmd --list-ports

执行:

java -jar jar包

nohup后台运行

  • 使用maven install 打jar包

                ​​​​​​​        虚拟机上进行java项目部署_第3张图片

  • 将jar包传到linux中

  • 在jar包所在目录下创建 nohup.out日志文件, 用于输出项目启动的日志输出

  • 让jar包在后台运行

 //nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
 //当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中
 //除非另外指定了输出文件。
 nohup java -jar SpringBoot-03-web2-0.0.1-SNAPSHOT.jar &
  • 查看nohup.out 文件

//-f 循环读取
//-n<行数> 显示文件的尾部 n 行内容
tail -fn 10000 nohup.out     -- 查看文件
  • 防火墙相关命令

启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld 
开机禁用: systemctl disable firewalld
开机启用: systemctl enable firewalld
  • 开启一个端口

//添加
firewall-cmd --zone=public --add-port=8080/tcp --permanent  
//添加端口外部访问权限
firewall-cmd --add-port=8080/tcp
//重新载入,添加端口后重新载入才能起作用
firewall-cmd --reload

虚拟机上进行java项目部署_第4张图片

 

  • 查看和删除端口

//查看端口
firewall-cmd --zone=public --query-port=8080/tcp
//删除端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
  • 终止jar包运行

ps -ef | grep java
kill pid

2.TOMCAT安装

ssm war 就需要放到tomcat中运行!

1.下载tomcat.官网下载Apache Tomcat® - Welcome!

apache-tomcat-9.0.65.tar.gz

2.解压这个文件

tar -zxvf apache-tomcat-9.0.65.tar.gz

虚拟机上进行java项目部署_第5张图片

3.启动tomcat测试 ./xxx.sh脚本即可运行

进入Tomcat文件bin文件

# 执行 
./startup.sh
# 停止 
./shutdown.sh

虚拟机上进行java项目部署_第6张图片

如果防火墙8080端口开了并且阿里云安全组也开放了,这个时候就可以直接访问远程了!

# 查看firewall服务状态
systemctl status firewalld

启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld 
开机禁用: systemctl disable firewalld
开机启用: systemctl enable firewalld

# 查看防火墙规则
firewall-cmd --list-all # 查看全部信息
firewall-cmd --list-ports # 只看端口信息

# 开启端口
开端口命令 : firewall-cmd --zone=public --add-port=8080/tcp --permanent
重启防火墙 : systemctl restart firewalld.service

命令含义
--zone #作用域
--add -port-80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效

3.DOCKER

1、YUM安装

yum install -y yum源

基于 CentOS 7 安装

  1. 官网安装参考手册:Install Docker Engine on CentOS | Docker Documentation

  2. 确定你是CentOS7及以上版本

    [root@192 Desktop]# cat /etc/redhat-release
    CentOS Linux release 7.2.1511 (Core)

  3. yum安装gcc相关(需要确保 虚拟机可以上外网 )

    yum -y install gcc
    yum -y install gcc-c++

    网络连接测试

    ping

    在我们的实验场景里,没有真实的服务器。我们现在就确保我们的物理机和虚拟机之间必须可以完美通信。在之前我们刚刚装好虚拟机的时候,我们直接拿firefox做过一个上网实验,当时我们发现虚拟机是直接能够连上百度的。照这么看的话,这个网络连接其实已经配好了,但是现在我们还是想测一下跟主机之间能不能通信。 ping 这个命令在Windows和Linux下都是通用的,是一个系统命令,它主要就是用来检测两台机器之间是否能够正常发送数据,是否能够正常通信。ping一台主机时,命令为ping 主机的IP地址。所以这里边我们的核心是得知道你要ping的那台机器的IP。当然了,实际在操作的时候,不光可以加IP,你也可以直接加域名或者主机名,比方说我们可以直接ping百度,这是完全没有问题的,这个过程需要做域名转换、域名解析。

    获取主机的IP地址

    方法一: 打开网络和Internet设置

    虚拟机上进行java项目部署_第7张图片

    点击下边的更多网络适配器选项

    虚拟机上进行java项目部署_第8张图片

    所有的网络连接在这里一目了然。

    虚拟机上进行java项目部署_第9张图片

    我们看到尽管多达到6个,但是其实很多都断开的。我现在连的无线,所以右键点击最右侧的WLAN图标,点击状态。

    虚拟机上进行java项目部署_第10张图片

    点击详细信息

    虚拟机上进行java项目部署_第11张图片

    这里我们就可以看到192.168.31.222,这就是我当前的IP地址。

    虚拟机上进行java项目部署_第12张图片

    方法二: 在命令行输入ipconfig,查询当前IP网络配置相关的东西。我们现在连接的无线,可以看到IP地址就是192.168.31.222

    虚拟机上进行java项目部署_第13张图片

    虚拟机ping主机

    我们在虚拟机的终端中ping主机,可以看到可以正常通信

    虚拟机上进行java项目部署_第14张图片

    获取虚拟机的IP地址

    方法一: 点击设置

    虚拟机上进行java项目部署_第15张图片

    点击网络,然后点击设置图标

    虚拟机上进行java项目部署_第16张图片

    就可以看到虚拟机的IP地址是192.168.128.130

    方法二: 在终端中输入ifconfig(其实是network’s interface config的缩写,即网络接口的配置),敲回车。可以看到IP地址是192.168.128.130。下面的127.0.0.1是回环地址。下面还有个virbr0,其实是当前Linux系统里边又创建了一个虚拟网络。也就是说我们本来是在虚拟机里边装的Linux系统,然后在这个Linux系统里边又可以创建一个虚拟网络,然后再接一些虚拟化的设备。

    虚拟机上进行java项目部署_第17张图片

    主机ping虚拟机

    我们在主机的终端中ping虚拟机,可以看到可以正常通信

    虚拟机上进行java项目部署_第18张图片

  4. 卸载旧版本

    # 官网版本
    yum remove docker \
              docker-client \
              docker-client-latest \
              docker-common \
              docker-latest \
              docker-latest-logrotate \
              docker-logrotate \
              docker-engine

  5. 安装需要的软件包

    yum install -y yum-utils device-mapper-persistent-data lvm2

  6. 设置stable镜像仓库

    # 正确推荐使用国内的
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  7. 更新yum软件包索引

    yum makecache fast
  8. 安装Docker CE

    yum -y install docker-ce docker-ce-cli containerd.io
  9. 启动docker

    systemctl start docker
  10. 测试

    docker version
    
    docker run hello-world
    # 第一次他需要自己从docker官网拉取这个项目
    
    docker images

2、docker部署java

将项目打包成jar包

编写Dockerfile脚本

# 基于centos:7基础镜像构建 
FROM centos:7 

# 创建目录 
RUN mkdir /usr/local/docker 

# 进入该目录下 
RUN cd /usr/local/docker 

# 将包添加到/usr/local/docker目录下并解压 
ADD jdk-8u341-linux-x64.tar.gzz /usr/local/docker

# 环境变量配置
ENV JAVA_HOME=/usr/local/docker/jdk-8
ENV CLASSPATH=.:$JAVA_HOME/lib 
ENV PATH=.:$JAVA_HOME/bin:$JAVA_HOME/lib:$PATH 

# 输出Java版本信息 
CMD ["java","-version"]

如果是jdk-17

我们需要单独构建jdk17,上面的包也需要改成17的版本【jdk-17_linux-x64_bin.tar.gz】

docker build -t jdk:17

# 设置本镜像需要使用的基础镜像 
FROM java:8 

# FROM jdk:17 

# 把jar包添加到镜像中 
ADD study-process-0.0.1-SNAPSHOT.jar /app.jar 

# 暴露的端口 
EXPOSE 3030 

RUN bash -c 'touch /app.jar' 
# 容器启动命令 
ENTRYPOINT ["java","-jar","/app.jar"] 

# 设置时区 
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

构建镜像

将jar包和脚本一同放入服务器中,打上标签构建

docker build -t study-process:1.0.0 .

运行镜像

docker run -d -p 3029:3029 镜像id

进入运行的容器

运行后根据docker ps查询id进入

docker exec -it 容器id /bin/bash

4、最后

这些我们通过虚拟机加Xshell(远程控制),Xftp(上传文件)

主机访问虚拟机的ip地址就可以在浏览器中打开springboot项目的web页面了

 那么大家就快去实战吧  

你可能感兴趣的:(上线,java,docker,intellij-idea,centos,linux)