Linux——创建容器并将本地调试完全的前后端分离项目打包上传docker运行

news2024/11/15 21:22:53

前言

在上传之前需要有一个已经搭建好的前后端分离的项目,下面是后端的项目结构图和前端页面图

在服务器上利用准备好的docker镜像配置一个新的容器

创建容器

这里使用的docker镜像的OS是ubuntu20.04.需要自备。

注意好端口映射: 通常前端项目使用的端口号一般都是80和443端口,这里因为没有打算上ssl证书和备案,仅仅只是记录操作,所以配置443端口了。这里我使用的后端项目配置的端口是4000端口。同时还要配置一个端口映射到22端口用于ssh登录。

这里的端口映射一旦确定后面就很难改了。

使用如下语句,进行创建(注意,这里用到的20001,4000,81端口都要服务器控制台防火墙那里放行,这里不再演示)

docker run -p 20001:22 -p 81:80 -p 4000:4000 --name chat_server -itd docker_lesson:1.0

创建成功后使用下面的语句就可以看见有一个新的容器在跑了

docker ps -a

使用如下语句进入容器并设置容器的密码

docker attach my_docker_server  # 进入创建的docker容器
passwd  # 设置root密码

配置容器的ssh登录

ssh root@xxx.xxx.xxx.xxx -p 20000  # 将xxx.xxx.xxx.xxx替换成自己租的服务器的IP地址

 使用如下语句配置免密登录

ssh-copy-id host   (ssh配置文件里面host值)

上传祖传文件,(acwing用户特有)

scp .bashrc .tmux.conf  .vimrc Host名:

下载tmux,下载完之后就可以使用祖传文件了。

apt-get update (进行任何下载操作前都要更新一下先)

apt-get install tmux

下载Nginx

在以下这个文章里面都有。

Nginx—在linux的ubuntu系统上的安装使用_nginx ubuntu 访问_北岭山脚鼠鼠的博客-CSDN博客

这里关闭容器内的naignx服务时会连带容器外面的nginx一起关掉,所以一定要小心。 

下载完之后运行一下应该可以通过服务器IP+端口访问出现如下页面。

安装,配置mysql和jdk

安装mysql

sudo apt-get install mysql-server

启动MySQL服务

sudo /etc/init.d/mysql start

sudo service mysql start

设置root用户的密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';

再次登录(项目配置文件里面的用户名和密码要和这里对应)

mysql -uroot -p123456

安装JDK(这个和后端项目的JDK版本要对应)

sudo apt-get install openjdk-8-jdk

准备数据库和对应的表(要和在本地调试时保持一致)

在idea中点击右侧的数据库在对应表上右键获取建表语句如下所示

然后容器里面创建一个新的sql后缀的文件存放复制到的sql语句

 

然后里面这个sql文件进行建表操作

这里要先在对应数据库下面才可以创建

 source /root/create_table.sql;

上传后端项目并运行

打包并上传jar包

首先要先对后端项目进行打包操作,点击右侧的package

打包完成后会多出一个target文件夹,在里面会有一个jar包。

 

通过git_bash上传到容器里面(前提是已经配置好ssh登录)

scp backbound-0.0.1-SNAPSHOT.jar 1server_chat:

 

 使用下面命令把根目录下面的jar包传到创建好文件夹下

 cp ~/*.jar .

运行jar包 

打开一个tmux窗口用来运行jar包

 java -jar backbound-0.0.1-SNAPSHOT.jar   

本地运行前端项目测试

服务器 数据库当中也有出现数据但是全是问号(不要紧)

 

上传 前端项目文件 

打包前端文件,直接点击bulid,然后会出现一个dist文件夹 

使用gitbash将dist上传到服务器对应文件夹中

 scp -r dist 1server_chat:chat/web/

然后就可以去配置nginx定向,一切都按照下面博客里面教的就可以了,都是一样的。

Nginx—在linux的ubuntu系统上的安装使用_nginx ubuntu 访问_北岭山脚鼠鼠的博客-CSDN博客

最后就可以用ip+端口访问了

这里下面这个文章解决了困扰我很久的问题,每次nginx的80端口一改都报404,使用下面方法解决。

这里可能会报403错误有两个解决方案,一个是nginx的工作用户改成root用户,还有一个是赋予web目录权限,通常使用后一个。

这次使用的是赋予在root目录以777权限的方式解决的。

运维排查篇 | 访问nginx出现403错误 - 知乎

nginx 80端口配置多个location无效 访问404_风间琉璃c的博客-CSDN博客 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/635125.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【DeepSpeed 教程翻译】二,Megatron-LM GPT2,Zero Redundancy Optimizer 和 ZeRO-Offload

文章目录 0x0. 前言0x1. Megatron-LM GPT2使用原始的 Megatron-LM 训练 GPT2设置训练数据运行未修改的Megatron-LM GPT2模型开启DeepSpeed参数解析初始化和训练初始化使用训练API前向传播 反向传播更新模型参数损失缩放检查点保存和加载 DeepSpeed Activation Checkpoints&…

异常检测学习笔记 三、线性回归方法、主成分分析、支持向量机

一、线性回归方法 类似这样的函数是线性回归模型和支持向量机的基础,线性函数很简单,如果原始问题是非线性的,那么将其转化为线性问题更容易处理,比如下面的方程。 线性映射是主成分分析的重要组成部分。 寻找响应(因变量)和解释变量(自变量)之间的线性关系,…

python实现图片、gif转为字符样式图与gif,pyqt5、opencv、PIL

使用pyqt5将图片转换为字符样式的图片步骤如下: 设计pyqt5界面,使用Qt Designer 设计界面样式 将ui文件转换为py代码 书写相关按钮信号槽代码打开图片按钮需要一下逻辑步骤弹出选择路径的界面来选择文件保存 图片的路径,能在转换保存的按钮…

数字IC前端学习笔记:FIFO的Verilog实现(二)

相关文章 数字IC前端学习笔记:LSFR(线性反馈移位寄存器) 数字IC前端学习笔记:跨时钟域信号同步 数字IC前端学习笔记:信号同步和边沿检测 数字IC前端学习笔记:锁存器Latch的综合 数字IC前端学习笔记&am…

最新站长必备在线工具箱系统源码 含上百款工具 带后台版本

🎈 限时活动领体验会员:可下载程序网创项目短视频素材 🎈 最新站长必备在线工具箱系统源码 含上百款工具 带后台版本 自适应模板 优化修复版 系统一切正常可用,后台登录方式是QQ扫码登录的,建议有能力的可以改一改 此工具箱系统…

【LVS + Keepalived 群集】

目录 一、Keepalived 案列分析二、Keeoalived 工具介绍1、keepalived 实现原理剖析2、VRRP (虚拟路由冗余协议)是指对路由器的一种备份解决方案3、keepalived 案例讲解4、keepalived 的安装与启动5、Keepalived及其工作原理Keepalived体系主要模块及其作…

SQL锁总结

一、概述 介绍 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁…

springboot3嵌入式容器源码解析

问题分析 不同于使用springmvc,在我们使用springboot时无需配置tomcat就可以直接使用,这就说明springboot已经在我们启动项目时将tomcat配置好了,接下来我们就来看看springboot底层是怎么实现的。 源码解析 ServletWebServerFactoryAutoConfiguratio…

【Python爬虫】整站40万条房价数据并行抓取,可更换抓取城市

目录 前言一、获取索引一级位置:区域信息二级位置:板块信息三级位置:地铁信息(搜索地铁周边房源信息) 二、获取索引页最大页数三、抓取房源信息Tag四、分配任务,并行抓取五、将抓取结果存储到excel中&#…

go map源码探索(查找、插入、删除、扩容、遍历)

文章目录 概要一、Go map结构二、Go map初始化2.1、不带容量初始化2.2、带容量初始化 三、Go map查找四、Go map插入4.1、插入源码分析4.2、溢出桶申请策略 五、删除源码分析六、扩容与迁移源码分析6.1、扩容条件6.1.1、当前负载因子大于6.56.1.2、有过多的溢出桶 6.2、扩容6.3…

LVS+Keepalivedd

Keepalived 一、Keepalived及其工作原理二、实验非抢占模式的设置 三、脑裂现象四、Nginx高可用模式 一、Keepalived及其工作原理 keepalived是一个基于VRRP协议来实现的LVS服务高可用方案,可用解决静态路由出现的单点故障问题。 在一个LVS服务集群中通常有主服务器…

11.枚举和注解|Java学习笔记

文章目录 枚举 enumeration enum自定义实现枚举自定义类实现枚举总结 使用enum关键字实现枚举实现方法Enum类方法enum实现接口 注解注解的理解JDK的元Annotation(元注解) 枚举 enumeration enum 从一个需求引入: 要求创建季节(Season) 对象&…

matlab 使用预训练神经网络和SVM进行苹果分级(带图形界面)支持其他物品图片分级或者分类

目录 数据集: 实验代码:alexnet版 如果你的matlab不是正版,先看这里: 数据集结构: 训练代码: 训练结果: 图形界面: 界面展示: 其他: 输出结果: 实验…

代码规范

一 、代码规范 程序员写代码,不仅仅是实现功能 1. 名称 在Python开发过程中会创建文件夹/文件/变量等,这些在命名有一些潜规则(编写代码时也要注意pep8规范)。 文件夹,小写 & 小写下划线连接,例如&a…

jmeter 在linux服务器中执行性能测试、监听服务器资源指标

jmeter监控服务器资源 资源准备jmeter安装(Windows 版)jmeter安装(linux 版)ServerAgent安装(linux 版)配置脚本并执行测试 资源准备 下载apache-jmeter-5.5文件;下载ServerAgent-2.2.3文件; jmeter安装&…

ZooKeeper的集群部署和启动与关闭

ZooKeeper是一个分布式应用程序协调服务。一个ZooKeeper集群可以存在多个Follower和Observer服务器,但只允许存在一台Leader服务器。如果Leader服务器宕机,那么ZooKeeper集群的其它服务器会投票选举出一个新的Leader服务器,为防止投票数不过半…

2023最新社交圈子即时聊天通信小程序+前端UNIAPP

🎈 限时活动领体验会员:可下载程序网创项目短视频素材 🎈 🎉 有需要的朋友记得关赞评,阅读文章底部来交流!!! 🎉 ✨ 源码介绍 2023最新多端社交圈子系统源码 | 陌生人社交…

[openeuler]Yocto embedded 联合sig例会 (2022-12-15)

Yocto & embedded 联合sig例会 (2022-12-15)_哔哩哔哩_bilibili

【C/C++】详解 函数重载和应用

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

【零基础学JS - 11 】javaScript中的if..else表达式

&#x1f468;‍&#x1f4bb; 作者简介&#xff1a;程序员半夏 , 一名全栈程序员&#xff0c;擅长使用各种编程语言和框架&#xff0c;如JavaScript、React、Node.js、Java、Python、Django、MySQL等.专注于大前端与后端的硬核干货分享,同时是一个随缘更新的UP主. 你可以在各个…