用Docker部署SSM项目

2023-11-07

Docker环境的安装

卸载原有的环境

sudo yum remove docker \

                  docker-client \

                  docker-client-latest \

                  docker-common \

                  docker-latest \

                  docker-latest-logrotate \

                  docker-logrotate \

                  docker-engine

安装docker数据存储驱动包

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

采用国内阿里云的下载源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

检查安装源,如果“显示元数据缓存已建立”则表示优先选择了阿里云下载源

yum makecache fast

执行命令安装docker

yum -y install docker-ce

启动docker服务

service docker start  或  sudo systemctl start docker

开机自启动docker

sudo systemctl enable docker


docker阿里云镜像加速器

选择 镜像中心 下面的 镜像加速器 在右边的操作文档处选择对应系统的页签,将对应页签系统的下面的加速器内容复制到终端执行即可

再执行 docker pull 命令的时候,速度就会非常快


Docker安装mysql5.X

在本地建立mysql运行需要的文件夹,这是为了把docker内部的配置映射到宿主机,这样以后有任何修改只要改宿主机的内容即可,不要进入docker内部去修改了

在根目录建立mydata文件夹,然后建立mysql需要的文件夹

mkdir  -p  /mydata/mysql /mydata/mysql/log /mydata/mysql/data /mydata/mysql/conf

下载镜像

docker pull mysql:5.6

docker安装启动MySQL容器,并设置登陆密码为root

docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

修改MySQL的配置文件 vim /mydata/mysql/conf/my.cnf

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

init_connect="SET collation_connection = utf8_unicode_ci"

init_connect="SET NAMES utf8"

character-set-server=utf8

collation-server=utf8_unicode_ci

skip-character-set-client-handshake

skip-name-resolve

设置容器自启动

docker update --restart=always mysql

接着用客户端工具将数据库表数据导入即可



Docker安装运行Tomcat

在本地建立tomcat运行需要的文件夹,这是为了把docker内部的配置以及程序映射到宿主机,这样以后有任何修改只要改宿主机的内容即可,不要进入docker内部去修改了

在根目录建立mydata文件夹,然后建立tomcat需要的文件夹

mkdir  -p  /mydata/tomcat

下载Tomcat9镜像

docker pull tomcat:latest

先运行容易一下容器

docker run  -d -p 8080:8080 --name tomcat tomcat:9

把容器内部对应的配置文件复制到宿主机对应的目录下面

docker cp tomcat:/usr/local/tomcat/conf /mydata/tomcat/

docker cp tomcat:/usr/local/tomcat/webapps /mydata/tomcat/

docker cp tomcat:/usr/local/tomcat/logs /mydata/tomcat/

停止tomcat容器

docker stop tomcat

删除tomcat容器

docker rm tomcat

上传后端war文件

将导出的war文件拷贝的 /mydata/tomcat/webapps 目录下

重新运行容器并将tomcat的配置文件映射到宿主机

docker run -d --name tomcat -p 8080:8080 -v /mydata/tomcat/conf/:/usr/local/tomcat/conf/ -v /mydata/tomcat/webapps/:/usr/local/tomcat/webapps/ -v /mydata/tomcat/logs/:/usr/local/tomcat/logs tomcat:9

设置容器自启动

docker update --restart=always tomcat

后端的程序就算完成了


Docker安装nginx

在本地建立nginx运行需要的文件夹,这是为了把docker内部的配置以及程序映射到宿主机,这样以后有任何修改只要改宿主机的内容即可,不要进入docker内部去修改了

在根目录建立mydata文件夹,然后建立nginx需要的文件夹

mkdir  -p  /mydata/nginx  /mydata/nginx/conf  /mydata/nginx/conf/conf.d  /mydata/nginx/logs 

获取nginx镜像

docker pull nginx

先运行容易一下容器

docker run  -d -p 80:80 --name nginx nginx

把容器内部对应的配置文件复制到宿主机对应的目录下面

docker cp nginx:/usr/share/nginx/html /mydata/nginx/

docker cp nginx:/etc/nginx/nginx.conf /mydata/nginx/conf

docker cp nginx:/etc/nginx/conf.d/ /mydata/nginx/conf/

docker cp nginx:/var/log/nginx/ /mydata/nginx/logs/

停止并删除容器

docker stop nginx

docker rm nginx

上传前端代码

将前端代码上传到宿主机的 /mydata/nginx/html 路径

查看并修改nginx.conf文件

注意:

这里需要将location中的路径地址写成docker内部对应的前端代码存放的路径 /usr/share/nginx/html

而不是宿主机的地址路径  /mydata/nginx/html

重新启动运行容器并将nginx的配置文件映射到宿主机

docker run -d -p 80:80 --name nginx -v /mydata/nginx/html/:/usr/share/nginx/html -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /mydata/nginx/conf/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v /mydata/nginx/logs/nginx:/var/log/nginx nginx

设置容器自启动

docker update --restart=always nginx

这样就前端就配置结束了,可以通过浏览器访问看看

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用Docker部署SSM项目 的相关文章

随机推荐

  • 光耦隔离继电器驱动

    一 前言 因为吃亏了 而且不小 发个贴记录下 以后长记性 问题是由于不做光耦隔离 电路不稳定 做了光耦隔离 上电和断电瞬间被隔离器件上电抖动一下 明显不可以 错误的示范我就不发图了 二 环境 12V电源 stm32 驱动舵机 功率不大也不小
  • 一篇文章,从源码深入详解ThreadLocal内存泄漏问题

    原创文章 经验总结 从校招到A厂一路阳光一路沧桑 详情请戳www coderccc com 1 造成内存泄漏的原因 threadLocal是为了解决对象不能被多线程共享访问的问题 通过threadLocal set方法将对象实例保存在每个线
  • 在ISO/OSI参考模型中,网络层的主要功能是()----百度2016研发工程师笔试题(六)

    在ISO OSI参考模型中 网络层的主要功能是 正确答案 A 你的答案 A 正确 路由选择 拥塞控制与网络互连 提供可靠的端一端服务 透明地传送报文 数据格式变换 数据加密与解密 数据压缩与恢复 在通信实体之间传送以帧为单位的数据 添加笔记
  • Dynamics 365 安装后续

    之前说到Dynamics365安装时遇到的错误 这里将讲述最后一个错误的解决办法 这里指的是蓝色条选中的错误 根据错误的提示 我们需要去对Reporting Services进行安装和配置 首先说Reporting Services的安装
  • 树莓派Linux内核源码

    前期工作 配置好交叉编译工具链 交叉编译工具链详细教程 树莓派Linux内核源码下载 查看树莓派操作版本命令 uname r 源码下载 一 嵌入式裸机和带操作系统启动过程了解 C51 stm32启动过程 c直接操控底层寄存器实现相关业务 业
  • python代码编写规范

    最近两年的工作都是和运维相关 有时运维人员也会写一些python程序 但基本上都没有遵循相应的代码规范 一向粗暴 能用就行 既不考虑可读性也不考虑可维护性 作为一个开发人员有时候看他们写代码就很不舒服 今天就谈谈python写代码时的一些规
  • beforefieldinit释义

    首先让我们认识什么是 当字段被标记为beforefieldinit类型时 该字段初始化可以发生在任何时候任何字段被引用之前 这句话听起了有点别扭 接下来让我们通过具体的例子介绍
  • 黑苹果oc清除nvram_黑苹果完善之路-英特尔蓝牙「开启/关闭」功能完善教程

    小编开篇提醒 玩转黑苹果有风险 建议随时备份好自己的重要数据 很多机友安装黑苹果之后 打开蓝牙选项却发现 关闭蓝牙 选项是灰色的 无法进行选择 但是一些具有强迫症的机友内心可能会接受不了 所以就此出一期关于英格尔蓝牙驱动相关的详细教程 博通
  • 10 种机器学习算法的要点(附 Python 和 R 代码)

    http blog jobbole com 92021 本文由 伯乐在线 Agatha 翻译 唐尤华 校稿 未经许可 禁止转载 英文出处 SUNIL RAY 欢迎加入 翻译组 前言 谷歌董事长施密特曾说过 虽然谷歌的无人驾驶汽车和机器人受到
  • 什么是 IaaS? 基础结构即服务

    基础结构即服务 IaaS 是通过 Internet 配置和管理的即时计算基础结构 它是四类云服务中的一种 其余三种为软件即服务 SaaS 平台即服务 PaaS 和无服务器 IaaS 可根据需求快速纵向扩缩 你只需按实际使用量付费 它让你无需
  • 甘特图生产排程(APS)定制开发

    快速开发完成APS的数据可视化 订单展示 资源调度 智能排程等几乎全部功能模块 自动智能排程功能 提供专业需求分析师及开发团队 按需开发 全自动智能排程 这一APS的主要功能 能够实现自定义排程规则 一键式产生计划等高级功能 无需人工干预既
  • python虚拟环境理解 conda创建虚拟环境 pycharm配置运行环境

    python虚拟环境理解 conda创建虚拟环境 pycharm配置运行环境 一 什么是python的虚拟环境 python虚拟环境是为了让不同的项目能够在不同的python环境中运行 比如项目A需要python2 numpy3 1 项目B
  • Openwrt学习笔记(四)——系统开机启动

    1 内核启动 bootloader将kernel从flash中拷贝到RAM以后 bootloader将退出舞台 并将这个舞台交给了kernel 中间有些交接的细节过程 这里不赘述 我们直接从kernel的启动开始分析 不同平台的kernel
  • 算法专题之矩阵

    前言 矩阵相关的算法在互联网世界有着广泛的应用 比如图片的像素修改 上一小结介绍过 获取地图路径方案等 在数学中 一个矩阵说穿了就是一个二维数组 矩阵相关的基础算法也都是基于二维数组的基础上完成各类数据操作 本小节列举了前端面试中高频出现的
  • Error:fatal error C1010: unexpected end of file while looking for precompiled head

    场景 在VC6 0进行编写C 代码时 创建了一个 简单的程序 s 然后编译就爆出这个错误 场景复现 创建流程 点击左上角的 文件 然后点击 新建 在左上方选择工程 然后下方选择 Win32 Console Application 在右侧填写
  • 接口参数返回值 根据不同的值去改变样式

    改变接口返回值的样式 div class btn scope row notificationStatus div css部分 noticion active border 1px
  • ReactJS报错 React createElement error type is invalid — expected a string ...

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Warning React createElement type is invalid expected a string for built in components
  • Lua中使用毫秒精度时间的方法

    这篇文章主要介绍了lua中使用毫秒精度时间的方法 本文讲解使用luasocket库实现毫秒精度时间 需要的朋友可以参考下 lua自带的时间函数只能到秒的精度 为了统计到毫秒精度的时间 可以使用luasocket 下载地址http files
  • 操作系统之线程

    一 线程简介 早期的计算机系统只允许一个任务独占系统资源 一次只能执行一个程序 由于对程序并发执行的需求 引入了多进程 进程的引入可以解决多任务支持的问题 但是也产生了新的问题 每个进程分别分配资源开销比较大 进程频繁切换导致额外系统开销
  • 用Docker部署SSM项目

    Docker环境的安装 卸载原有的环境 sudo yum remove docker docker client docker client latest docker common docker latest docker latest