本文章内容操作环境采用的技术是 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