文章目录
概述
此博客主要通过在centos8镜像中安装MySQL、tomcat、jdk实现ssm项目的一键部署,下一篇博客介绍通过 docker-compose一键部署ssm项目
https://blog.csdn.net/qq_41538097/article/details/107196797.
环境:
系统: Linux centos8
镜像image:centos8.0
mysql:8.0.20
jdk:jdk1.8.0_161
tomcat:apache-tomcat-8.5.55
搭建部署
一、拉取镜像并创建容器运行
在dockerhub官网选择你镜像并拉取
链接: https://hub.docker.com/.
docker pull centos:centos8
docker run -itd --name centos -p 4000:8080 -p 3306:3306 --privileged centos:latest /usr/sbin/init
docker exec -it centos /bin/bash
=注意使用了 /usr/sbin/init --privileged保证容器内能够使用systemctl,保证能启动mysql,上述命令映射了两个端口,截图不正确,按上述命令运行=
二、 安装必要工具软件
1、安装 wget 下载软件
我的镜像是centos,若是其他类型系统,如ubuntu镜像可以使用 apt-get
yum install wget
2、安装mysql
过程中有什么错误,可以参考我另一篇博客
链接: https://blog.csdn.net/qq_41538097/article/details/106552606.
//下载mysql8.0 rpm
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
//安装
yum localinstall mysql80-community-release-el8-1.noarch.rpm
//检测mysql是否安装完成
yum repolist enabled | grep "mysql.*-community.*"
//先禁用MySQL模块
yum module disable mysql
//安装服务
yum -y install mysql-community-server
//启用services
yum install initscripts -y
启动报错,看网上说的centos对mysql7.0以上收费了(不确定)
解决方案
首先需要安装mariadb-server
yum install -y mariadb-server
启动服务
systemctl start mariadb.service
添加到开机启动
systemctl enable mariadb.service
如下启动成功
修改mysql密码,初始密码为空,直接回车进入
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxx';
远程登录,提示不需要密码
设置远程登陆密码
ALTER USER 'root'@'%' IDENTIFIED BY 'xxxxxx';
select host,user,password from mysql.user;
设置完密码可以看到,如此远程用密码可以正常登录
3、安装Tomcat
① 用 wget 下载
链接: https://mirrors.cnnic.cn/apache/tomcat.
选择合适的版本,拼接下载地址
wget https://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.5.56/bin/apache-tomcat-8.5.56.tar.gz
提示证书过期
参考博客
链接: https://blog.csdn.net/qq_41538097/article/details/107064986.
解压 apache-tomcat-8.5.56.tar.gz
tar -zxvf apache-tomcat-8.5.56.tar.gz
② 将本地下载的压缩包拖进来
将宿主机的文件copy进来,将已经解压过的 tomcat 文件复制到容器内
apache-tomcat-8.5.55宿主机源文件
centos 容器名字/容器id
/usr/local/ 容器内部目录,必须以 / 即根目录开头
docker cp apache-tomcat-8.5.55/ centos:/usr/local/
如下可以看到 已经将宿主机的 apache-tomcat-8.5.55 文件夹复制到 容器内部
4、安装jdk
需要用 wget 下载的可以到 官网找合适的版本
链接: https://www.oracle.com/java/technologies/javase-downloads.html
.
以下介绍将宿主机的 copy 进容器
docker cp jdk1.8.0_161/ centos:/usr/local/
配置环境变量
打开配置文件
vi /etc/profile
将下列配置复制在文件最后,注意修改为你的 jdk 路径
export JAVA_HOME=/usr/local/jdk1.8.0_161
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jsr
export PATH=$JAVA_HOME/bin:$PATH
刷新配置
source /etc/profile
验证是否配置成功
java -version
验证tomcat是否配置成功
cd /usr/local/apache-tomcat-8.5.55/bin
./startup.sh
如下启动成功
访问 http://39.99.222.146:4000.,还成你自己的服务器ip或者localhost
注意:此处的端口号4000是你创建容器时的端口映射,我的是4000:8080,8080容器是默认开启的,如果想自定义开启容器端口,查看我的另一篇博客
5、将ssm.war项目的放入tomcat的webapps目录下
将ssm.war包复制到容器的tomcat中
docker cp ssm.war centos:/usr/local/apache-tomcat-8.5.55/webapps/
进入容器
docker exec -it centos bash
已启动的tomcat会将war包自动解压
perfect
6、配置服务程序自启动
配置服务程序自启动可以避免每次启动容器都需要进入容器手动开启服务,配置方法参考下面连接
链接: https://blog.csdn.net/qq_41538097/article/details/107107810.
三、 上传提交镜像
将容器提交为镜像
docker commit centso centos:1.1.1
docker images
提交镜像到dockerhub,若想提交到 阿里云请查看我另一篇博客
docker login
docker tag centos:1.1.1 yelingyun/centos_ye:1.0.0
docker push yelingyun/centos_ye:1.0.0
如下上传成功