docker制作ssm镜像(一)

概述

此博客主要通过在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

如下上传成功
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41538097/article/details/107058687