【Tomcat部署+Linux部署+Docker部署】不同方式的部署
(1)Tomcat服务器部署
IDEA项目打包
(1)第一步:项目打成war包,clean+package
(2)第二步:找到war包的地址
package点击完后,控制台输出打包结果,复制路径找到war包
(3)第三步:把war包复制到Tomcat的webapp目录下,在bin目录下启动服务器
在目标目录下找到war包,复制
在webapp目录下粘贴
在bin目录下启动
(2)Linux系统部署
(1)环境工具准备
(2)上传项目文件war包
(3)找到目标文件目录webapp
(4)开始部署并查看日志
(5)命令忘了用history查看历史记录
(2.1)先连接虚拟机上的linux系统
进入Linux系统,打开终端,输入命令:ip address
得到ip地址为:192.168.17.130
(2.2)打开XShell,连接上地址
XShell比直接在虚拟机的终端使用好用多了,打开Xftp,可以浏览Linux系统下的文件目录
(2.3)先认识一下Linux下的文件目录
- /bin目录:重点,是binary的缩写,放最常使用的命令
- /sbin:重点,是super user的意思,存放的事系统管理员使用的系统管理程序
- /home:重点,存放普通用户的主目录,在linux中每个用户都有一个自己的目录,一般这个目录名是以用户的账号命名的
- /root:重点,这个目录为系统管理员,也称作超级权限者的用户主目录
- /lib:重点,系统开机所需要的动态链接共享库,其作用类似于Windows的DLL文件,几乎所有的应用程序都需要用到这个共享库
- /lost+found:重点,这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
- /etc:重点,所有的系统管理所需要的配置文件和子目录,例如你安装mysql的配置文件my.conf
- /usr:重点,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于Windows下的program files目录
- /boot:重点,存放的是启动linux时使用的一些核心文件,包括一些连接文件以及镜像文件
- /proc:这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
- /srv:别乱动,service缩写,该目录存放一些服务启动之后需要提取的数据
- /sys:别乱动,这个是linux2.6内核的一个很大的变化,这个目录下安装了2.6内核中新出现的一个文件系统sysfs
- /tmp:别乱动,这个目录是用来存放一些临时文件的
- /dev:类似于Windows的设备管理器,把所有的硬件用文件的形式存储
- /media:重点,linux系统会识别一些设备,例如u盘,识别以后,linux会把识别的设备挂载到这个目录下
- /mnt:重点,系统提供这个目录是为了让用户临时挂载别的文件系统的,我们可以把外部的存储挂载在mnt上,然后进入该目录就能查看里面的内容了。例如Windows和linux的共享文件夹
- /opt:这是给主机额外安装软件所摆放的目录,如安装MySQL数据库就可以放到这个目录下,默认是空
- /usr/local:重点,这是另一个给主机额外安装软件所安装的目录吗,一般是通过编译源码方式安装的程序
- /var:重点,这个目录中存放着在不断扩充着的东西,习惯性经常被修改的目录放在这个目录下,包括各种日志文件
- /selinux:是一种安全子系统,它能控制程序只能访问特定文件
(2.4)搭建环境–安装JDK
- 安装命令:yum -y install java-1.8.0-openjdk.x86_64
- 检查版本:java -version
(2.5)搭建环境–安装Mysql
- 获取mysql社区版:cd /tmp
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm - 通过yum进行安装:yum install mysql mysql-server mysql-devel -y
- 启动:systemctl start mysql.service
- 检查端口号:netstat -anp|grep 3306
- 设置密码:mysqladmin -u root password admin
- 登录验证:mysql -uroot -padmin
- 查看数据库:show databases;
- 退出命令:quit
(2.6)搭建环境–安装Tomcat
(1)安装:cd /tmp
wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.92/bin/apache-tomcat-7.0.92.tar.gz
tar xzf apache-tomcat-7.0.92.tar.gz
mv apache-tomcat-7.0.92 /usr/local/tomcat7
注意是安装在文件 /usr/local/tomcat7 下面
(2)也可以使用xftp上传tomcat文件,传一个Tomcat9到home文件夹下
(3)运行
- 进入home文件夹:cd /home
- 查看当前文件夹:ll
- 进入tomcat文件夹:cd apache-tomcat-9.0.21/
- 查看当前文件夹:ll
- 进入bin文件夹:cd bin/
- 如果启动sh提示权限不足:chmod +x *.sh
- 在当前文件夹下关闭启动:./shutdown.sh
- 查看启动已启动的tomcat:ps -ef|grep tomcat
- 关闭已启动的进程:
- 在当前文件夹下启动tomcat:./startup.sh
- 退回到上一层目录:cd …
- 查看启动日志文件(注意:win系统显示的是GBK,而Linux显示的是UTF-8):tail -f logs/catalina.out
- 查看结束退出快捷键:ctrl+c
- 监听一下8080端口号:netstat -anp|grep 8080
(4)要开放端口不然windows上访问不到
- 打开配置文件:vi /etc/vsftpd/vsftpd.conf
- 编辑时翻页:ctrl+f
- 编辑时到最后一行:shift+g或者$+回车
- 进入编辑:i键
- 在配置文件下加上:表示端口分配在30000-30010之间
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30010 - 退出编辑:esc键(按完以后光标消失,这时直接输入 : ,选择保存还是不保存)
- 保存并退出::wq!
不保存并退出::q!
(5)到windows上进行访问
http://192.168.17.130:8080/
前面是我们连接Linux的地址,后面是端口号
(6)在windows访问不到8080的解决方案
1-看看8080端口有没有启动:netstat -anp|grep 8080
2-看看Linux系统能不能访问8080:curl http://192.168.17,130:8080
3-如果第二步可以访问,说明就是防火墙的问题了
开放8080端口:firewall-cmd --zone=public --add-port=8080/tcp --permanent
重启防火墙:firewall-cmd --reload
(2.7)上传项目文件–web项目
(2.7.1)上传项目文件
(1)在home文件夹下创建新的文件夹web-project:mkdir web-project
(2)在本地把项目解压,再用xftp把加压后的项目文件上传
(2.7.2)上传sql文件
(1)Linux的mysql大小写是敏感的,为了编写方便要改成不敏感的
1-打开mysql配置文件:vi /etc/my.cnf
2-在[mysqld]后添加添加:lower_case_table_names=1
3-重启mysql:systemctl restart mysqld.service
(2)上传后缀为.sql的文件
(3) 创建数据库
1-连接到数据库:mysql -uroot -padmin
2-创建数据库:CREATE DATABASE tmall DEFAULT CHARACTER SET utf8;
3-查看数据库:show databases;
4-先ctrl+c退出一下
5-导入数据:mysql -u root -padmin --default-character-set=utf8 tmall < /home/wwwroot/ftptest/tmall.sql
(4)验证一下
1-重新登录:mysql -uroot -padmin
2-进入数据表:use tmall;
3-查看数据表:show tables;
4-测试sql语句:select count(*) from product;
(2.7.3)配置tomcat
(1)打开server.xml:vi /usr/local/tomcat7/conf/server.xml
(2)在<host下面增加一行:
(3)重启tomcat:
/usr/local/tomcat7/bin/shutdown.sh
/usr/local/tomcat7/bin/startup.sh
(2.8)上传项目文件–maven项目
(3)Docker部署
最重要的不是如何去搭建环境,而是在搭建好的环境当中如何进行合理的使用。
(1)Linux下用Docker和不用Docker的区别
首先,Docker的绝大部分使用场景都是在Linux系统,所以首先安装虚拟机VMWare,然后在虚拟机里安装Linux系统(当然也可以直接使用阿里云的服务器)
然后,为什么要用Docker呢?
先要知道以前没使用Docker是如何部署的,Linux系统上没有环境,需要先搭环境:
- 安装 FTP 服务器,配置它,配置FTP用户
- 安装JAVA环境
- 安装数据库,配置数据库
- 安装TOMCAT
- 开放FTP和TOMCAT端口
- 上传项目应用
- 配置 TOMCAT
- 上传SQL语句
- 导入这个 SQL 语句
- 启动TOMCAT
使用了Docker以后:
- 1.安装Linux系统
- 2.安装Docker
- 3.在Docker里安装一个小的Linux操作系统
- 4.把封装好所有配置工作的"Linux系统"整个运行起来
(2)安装Docker和常用工具
(1)安装Docker
yum install docker -y
(2)启动Docker
systemctl start docker.service
systemctl status docker.service
(3)以下是docker 的生命周期管理常用命令:
systemctl stop docker.service
systemctl start docker.service
systemctl restart docker.service
systemctl status docker.service
(4)安装常用工具
yum install iproute ftp bind-utils net-tools wget -y
(5)配置dns
1)查看百度的域名服务器地址
nslookup www.baidu.com
2)改为公用的域名服务器地址
进入编辑:vi /etc/resolv.conf
修改如下:
Generated by NetworkManager
search www.tendawifi.com
nameserver 119.29.29.29
nameserver 182.254.116.116
3)查看百度的域名服务器地址
nslookup www.baidu.com
看到 域名服务器地址已经是 119.29.29.29 了
(6)配置镜像加速器
1)直接运行如下代码:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://hvmf8r55.mirror.aliyuncs.com”]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2)查看 daemon.json 是否已经生效了
tail /etc/docker/daemon.json
(7)拉取镜像
把可运行的Linux(镜像)从 hub.docker.com 上拉下来:docker pull how2j/tmall
(8)运行镜像
docker run -dit --privileged -p21:21 -p80:80 -p8080:8080 -p30000-30010:30000-30010 --name how2jtmall how2j/tmall:latest /usr/sbin/init
(9)检查端口
netstat -anp|grep 8080
(10)访问地址
http://192.168.17.130:8080/tmall/
(3)理解概念
(1)认识镜像仓库
所谓的镜像,就是持久化后的,安装了各种工具,软件和服务的一个Linux 操作系统。一个镜像可以在docker的镜像仓库中存放和管理
基础概念:
- 仓库: 别人做好的现成的镜像,都放在仓库里
- 镜像: 自己要用哪个镜像,就先拉到本地来。镜像就相当于还没激活的容器。
- 容器: 容器就是跑起来的镜像,就是一个完整的工作环境
常用命令:
- pull命令拉取,把镜像从服务器上拉到 Docker 本地:docker pull how2j/tmall
- 镜像拉取到本地以后,需要激活,就是run起来:docker run -dit --privileged -p21:21 -p80:80 -p8080:8080 -p30000-30010:30000-30010 --name how2jtmall how2j/tmall:latest /usr/sbin/init
- 进入容器,就是进入启动的运行Tomcat的Linux系统:docker exec -it how2jtmall /bin/bash
- 进入容器以后,就可以像操作一个普通Linux一样操作了,例如使用ll命令等等
(2)管理镜像仓库
- search 查看仓库里有些什么镜像:docker search how2j
- pull 拉取镜像
- images 查看本地有些什么镜像:docker images
- rmi 删除本地镜像
- 修改本地镜像名称
- push , 把镜像提交到仓库