docker制作ssm镜像(一)

    技术2022-07-10  157

    文章目录

    概述环境:搭建部署一、拉取镜像并创建容器运行二、 安装必要工具软件1、安装 wget 下载软件2、安装mysql3、安装Tomcat① 用 wget 下载② 将本地下载的压缩包拖进来 4、安装jdk5、将ssm.war项目的放入tomcat的webapps目录下6、配置服务程序自启动 三、 上传提交镜像

    概述

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

    如下上传成功

    Processed: 0.012, SQL: 9