阿里云服务器ECS(CentOS)部署项目最详细流程(安装tomcat、部署项目、取消访问时自带项目名、购买域名、备案、域名访问项目)(图文介绍)

自己操作的时候出了很多问题,查了挺多资料最后解决了,记录一下

1、首先去docker hub上搜索tomcat

https://hub.docker.com/_/tomcat

2、找一个自己喜欢的版本,或者直接下载默认版本

docker pull tomcat

如果没有配置过镜像加速
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://ywdxnlrt.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

3、查看我们安装

docker images

4、运行tomcat容器

--name表示tomcat运行的名字

-d表示后台运行

-p表示端口映射(访问8090端口会映射到服务器中的8080端口)

最后的tomcat是image id,上图是4e7840b49fad,也可以是容器的名字tomcat

docker run --name mytomcat -d -p 8090:8080 tomcat

5、查看我们是否运行成功

docker ps -a

6、添加安全组规则,点击服务器的安全组ID进入,意思是服务器的8080-8090之间的端口都可以远程访问

7、打开网页,输入服务器IP地址:8090,报出404 Not Found错误

这是因为tomcat容器中的webapps中没有内容,内容都在webapps.dist中(估计tomcat默认装在webapps.dist中,启动默认是webapps中的内容)

我们可以先删除webapps文件夹,再把webapps.dist重命名为webapps

进入容器
docker exec -it df20c828b4d9 /bin/bash 查看内容
ls
删除webapps文件夹 rm
-rf webapps
重命名webapps.dist->webapps mv webapps.dist webapps
查看内容 ls
进入webapps cd webapps
查看内容 ls

8(可选,自己没遇到这个问题)查看防火墙状态,显示关闭状态

service firewalld status

9、打开网页,输入服务器IP地址:8090,OK,安装成功了

10、然后就是要部署项目了,我们准备一个项目并上传服务器

首先把项目打包成war包

win+R cmd
fscp 本地路径 需要上传服务器的路径
例:fscp D:项目名 root@服务器IP:/usr/java
或者直接上传进docker中对应的tomcat中去
显示出webapps的路径
find / -name webapps
/var/lib/docker/overlay2/677cda5f199121f2837196722f0166c7bcc607879705f8bafdbba035b5e395e8/merged/usr/local/tomcat/webapps
输入密码开始上传

11、回到服务器上来,重启tomcat容器

docker restart 容器ID

12、访问网址:服务器IP:8090/项目名/signin.jsp(signin.jsp是博主项目的登陆页面,根据自己实际情况修改),访问成功了,开开心心的输入用户名和密码,登陆(404??)

13、这是因为你登陆跳转的网址应该是不带项目名的,但是tomcat是需要带上项目名才能访问的,怎么解决呢?

通过查阅资料,我们得知是需要改tomcat中的server.xml配置文件的找到所在路径

find / -name server.xml
vim /var/lib/docker/overlay2/64bc11b342565c3730b989deb15b5e51e97a010179e0ed9f681a960f0dac1b58/merged/usr/local/tomcat/conf/server.xml

在大概Host这个位置加上下面的一句代码
<Context path="" docBase="/usr/local/tomcat/webapps/permission-1.0-SNAPSHOT" reloadable="true" />

别忘了:wq保存后重启容器
docker restart 容器ID

14、访问网址:服务器IP:8090/项目名/signin.jsp,成功OK

15、每次登陆都要服务器IP地址,服务器IP记不住怎么办呢,我们可以购买一个域名,进入阿里云服务器官网

16、购买一个自己喜欢的域名,完成后点击云解析DNS,再点击管理控制台

17、完成后,访问域名:8090/signin.jsp,成功OK(成功图14)

18、接下来,你肯定在思考,能不能不要暴露出端口,把8090去掉,答案是可以的(废话)

域名/signin.jsp,那么默认访问的是80端口,会被拦截不能访问,应该怎么开启呢?

点击16的图中的备案,按照流程一步一步填下来(博主在申请的时候由于网站名字被打回了,惨(太严格了))

然后工作人员会帮你提交到管局审核,大概1-2周审核通过了,就备案成功了(疫情期间,2天就通过了,效率真高(雾))

19、现在你已经备案成功了,域名/signin.jsp默认访问80端口,那么我们就需要创建一个容器tomcat把80端口映射到8080端口

回到第4步,一通操作下来,大概到13步(熟悉熟悉学过的内容),完成后我们就可以通过域名访问项目了(成功图14)

原文地址:https://www.cnblogs.com/taozi1115402474/p/12557580.html