服务器部署JavaWeb的war包(完整版)

16次阅读

本文章内容操作环境采用的技术是 docker 部署 war

提前下载好 Xshell7(终端 , 如果你买的服务器有终端窗口 , 那么用你的服务器终端窗口也行)和 Xftp7(传输文件), 并下载 navicat15(版本过低会因为 1045, 连不上服务器)

一、导出 war 包 , 并解压到桌面(也可以不解压 , 但建议解压)

二、连接 Xftp7 将文件放置在当前用户下的任意地方 , 不要忘记该文件路径 ,之后以 war 称呼这个文件夹

三、使用 Xshell 登录服务器

四、安装 docker(切换到 root 最高权限操作)

1、更新系统 : 首先 , 确保服务器的操作系统是最新的。你可以使用适用于你的操作系统的包管理工具来更新系统。

2、安装 Docker 的依赖项 :Docker 需要一些依赖项来正常工作。根据你的操作系统 , 执行以下命令来安装这些依赖项 :

对于 Ubuntu/Debian 系统 :

apt-get update
apt-get install apt-transport-https ca-certificates curl software-properties-common

对于 CentOS 系统 :

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

3、添加 Docker 的官方 GPG 密钥和软件包源 ,但在国内使用这个会很慢

Docker GPG 密钥(用以验证软件包的完整性)

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Docker 软件包源 :

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

建议使用国内相关镜像源 (可以理解为 GPG 密钥) 和软件包源命令来替换上述步骤 :

①腾讯云 docker 镜像源(可以理解为腾讯云 dockerGPG 密钥):

curl -fsSL https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

腾讯云 docker 软件包源(可以理解为腾讯云 dockerGPG 密钥):

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

②阿里云 docker 镜像源(可以理解为阿里云 dockerGPG 密钥):

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

阿里云 docker 软件包源(可以理解为阿里云 dockerGPG 密钥):

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

4、安装 Docker 引擎 : 执行以下命令来安装 Docker 引擎 :

apt-get update
apt-get install docker-ce docker-ce-cli containerd.io

或者 , 如果你是在 CentOS 上安装 Docker, 可以执行以下命令 :

yum install docker-ce docker-ce-cli containerd.io

5、启动 Docker 服务 : 安装完成后 , 执行以下命令启动 Docker 服务 :

systemctl start docker

使用以下命令设置开机自启 :

systemctl enable docker 

6、验证安装 : 执行以下命令来验证 Docker 是否正确安装 :

docker version

执行此命令后 , 你将看到 Docker 客户端和服务器的版本信息。

7、重启 docker(可选)

service docker restart

五、用 docker 安装 tomcat(tomcat 这里以 9.0 版本为例, 安装前最好查看一下自己的 tomcat 版本, 把版本号最好匹配上)

1、安装 tomcat:9.0

docker pull tomcat:9.0

2、查看一下是否安装成功

docker images

备注 :

如果你要删除镜像(安装的服务 , 如 tomcat) , 用该步骤 :docker rmi IMAGEID

  • IMAGEID: 可以在 docker images 中查询到

3、启动 tomcat(在容器中运行镜像)

docker run -d -p 8088:8080 --name CONTAINERTName1 tomcat:9.0
  • docker run: 运行 Docker 容器的命令。
  • -d: 在后台 ( 守护进程 ) 模式下运行容器。这意味着容器将在后台运行而不会占据当前终端会话。这个地方可以换成-t: 分配一个伪终端 (pseudo-TTY) 并保持 STDIN 打开 , 使容器在交互式终端模式下运行。
  • -p 8088:8080: 将主机 ( 宿主机 ) 的端口 8088 映射到容器的端口 8080。这允许通过访问主机的 8088 端口来访问容器中运行的 Tomcat, 这个主机 ( 宿主机 ) 端口你可以自定义 , 但需要注意服务器防火墙是否允许该端口访问。
  • CONTAINERName1: 这个选项指定了容器的名称为 "CONTAINERName1"。您可以将其替换为您希望为容器设置的实际名称 , 如 :tomcat。
  • tomcat:9.0: 指定要运行的容器的镜像版本。在这种情况下 , 使用的是 Tomcat 9.0 镜像。

综合起来 , 该命令的含义是在后台模式下运行一个基于 Tomcat 9.0 镜像的容器 , 并将主机的 8088 端口映射到容器的 8080 端口。容器的名称被设置为 "CONTAINERTName1", 这里我设置的是 "tomcat"。

4、查看正在运行的镜像容器 ,注意 CONTAINER ID 很重要。

docker ps 

备注 :

如果你要删除容器 , 用该命令 :docker rm -rf ID

5、测试 tomcat 是否配置成功

在自己的电脑浏览器网址框中输入

服务器公网 ip:8088
  • 8088 是本步骤 3 中设置的开放端口

注意 : 如果你的网站一直无法正常加载 , 那就是端口没有开放 , 请参考如下两篇文章

①腾讯云 : 之后补 ,

出现这个 tomcat 部署就成功了 , 恭喜你。

六、部署 web 项目到 tomcat 上(我的项目是 SpringCampus)

1、将自己在本地的 war 包或文件夹 , 复制到 tomcat 容器中

docker cp pathWar CONTAINER_ID:/usr/local/tomcat/webapps/
  • pathWar: 步骤二中上传的 war 包绝对路径位置

  • CONTAINER_ID:tomcat 容器 ID

2、进入到 tomcat 容器内部

docker exec -it tomcat bash

切换到 webapps 目录

cd webapps

查看步骤 1 中的 war 包或文件夹是否拷贝过来了

查询到有文件 ,success!

下面是该步骤实例 , 供参考。

3、退出容器

exit

4、重启 tomcat 容器

docker restart CONTAINER_ID
  • CONTAINER_ID:tomcat 容器 ID。这个地方也可以直接用容器名称:tomcat。

5、测试

服务器公网 ip:8088: 项目名称

我的 SpringCampus 项目 :

恭喜你已经成功将 web 项目部署到服务器上 ! 一起努力哦~

七、用 docker 安装 MYSQL 并部署(mysql 这里以 8.0.31 为例)

注意 :MySQL 版本无论在自己的 web 项目结构内还是服务器上都要一致。8.0 以上还是以下 , 连接方式都有一些不同。详情可以看我的这篇博客 , 直接 copy 用就行。

http://t.csdn.cn/EirwP

1、安装 mysql:8.0.31:

docker pull mysql:8.0.31

2、创建一个 MySQL 容器 :

docker run --name CONTAINERName2 -e MYSQL_ROOT_PASSWORD=RootPassword -p 3306:3306 -d mysql:8.0.31
  • docker run: 这是 Docker 命令的一部分 , 用于创建并启动一个新的容器。
  • CONTAINERName2: 指定了容器的名称为 "CONTAINERName2"。可以将其替换为你希望为容器设置的实际名称 , 如 :mysql。
  • RootPassword: 你需要将 "RootPassword" 替换为你希望设置的实际密码。这个密码将用于 root 用户的身份验证。
  • -p 3306:3306: 这个选项指定了端口映射 , 将容器内的 MySQL 端口 3306 映射到主机上的 3306 端口。这样可以通过主机的 3306 端口访问 MySQL 服务器。
  • -d mysql:8.0.31: 这个选项指定了要使用的 Docker 镜像。在这种情况下 , 使用的是名为 "mysql" 的官方 MySQL 镜像 , 并指定版本为 8.0.31。Docker 将根据这个镜像创建并启动容器。

3、启动 MySQL 容器

docker start CONTAINERName2

到这一步 , 你已经可以通过 navicat15 连接服务器云数据库了 , 并在数据库中设置支持自己 web 项目的数据信息。

4、连接到 MySQL 容器

docker exec -it CONTAINERName2 mysql -uroot -p
  • docker exec: 这是 Docker 命令的一部分 , 用于在正在运行的容器中执行命令。

  • -it: 这个选项结合在一起表示要以交互模式运行命令 , 并且将终端连接到容器的标准输入和输出。这样可以与容器进行交互。

  • CONTAINERName2: 这是容器的名称 , 用于指定要在其中执行命令的容器。你需要将 "CONTAINERName2" 替换本步骤 2 中所起的 MySQL 容器名称。

  • mysql: 这是要在容器内执行的命令 , 即 MySQL 命令行客户端。

  • -uroot: 这个选项指定要使用的 MySQL 用户名为 "root"。这表示使用 root 用户连接到 MySQL 服务器。

然后输入本步骤 2 创建容器时设置的 MySQL 密码

5、进入 MySQL 中通过 SQL 语句设置你所需要的数据信息以支持 web 项目。

大功告成 !!

如果能帮到你 , 请帮我点个赞 , 让这篇博文能被更多人看到 , 避免走弯路。

如果有问题 , 请在评论区或者私信告诉我 , 我看到后会第一时间解决。

原文链接:https://blog.csdn.net/m0_62379203/article/details/131231449

正文完
 
追风者
版权声明:本站原创文章,由 追风者 2023-12-30发表,共计4694字。
转载说明:声明:本站内容均来自互联网,归原创作者所有,如有侵权必删除。 本站文章皆由CC-4.0协议发布。