• [云原生·Docker] 在Docker中安装Mysql、Tomcat容器实例


    前言:
    😄作者简介:小曾同学.com,小伙伴们也可以叫我小曾,一个致力于测试开发的博主⛽️
    如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊
    座右铭:不想当开发的测试,不是一个好测试✌️。
    如果感觉博主的文章还不错的话,还请点赞、收藏哦!👍

    1. 前言

    假如我们平时想使用Linux系统、Mysql 数据库等应用进行练习,有了Docker容器,这些问题都可以秒极解决,所以掌握在Docker中安装一些常规的应用是非常有必要的。为此小编整理了下在Docker中安装应用的一些通用步骤,如下,

    1. 搜索镜像
    2. 拉取镜像
    3. 查看镜像
    4. 启动镜像(涉及到服务端口映射
    5. 停止镜像
    6. 移除容器(这一步随意)

    2. Docker 中安装 Mysql

    2.1 简单版本安装

    简单版本意为适用于只是平时的练习,忽略中文乱码问题的简单版本

    1. 下载 Mysql 镜像

      ## 以5.7版本为例
      docker pull mysql:5.7
      
      • 1
      • 2
    2. 运行容器

      docker run -p 3310:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
      ## -e 表示运行环境
      ## -d 表示后台启动
      ## MYSQL_ROOT_PASSWORD=123456 表示数据库登录密码
      
      • 1
      • 2
      • 3
      • 4

      注意:mysql默认端口号为3306,本地端口号设置为3310,在开始运行容器之前,需要先确认本地端口是否被占用,可使用如下命令,如果没有被占用的话,可以使用上面的命令继续操作

      lsof -i:3306
      
      • 1
    3. 进入容器,并登录数据库

      docker exec -it 4c72c08e9574 /bin/bash
      mysql -uroot -p
      
      • 1
      • 2

      接下来就可以当作平时对数据库一样使用
      在这里插入图片描述

    4. 连接数据库,并对数据库操作
      使用工具 Navicat Premium 连接数据库,并在数据表中添加一行含有中为的数据,此时会发现报错信息。
      在这里插入图片描述
      可以在 Mysql 容器中进行查看字符集,命令如下:

      SHOW VARIABLES LIKE 'character%';
      
      • 1

      在这里插入图片描述
      至此简单mysql容器实例已完毕,如果想处理字符集问题,请进入高级篇,继续往下操作

    2.1 高级版本安装

    针对存储问题,为了防止数据丢失,都会备份数据,所以本次事例以数据卷的方式运行mysql容器实例。

    1. 运行容器

      docker run -d -p 3311:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /Users/zengzhaoxia/mysql1/log:/var/log/mysql -v /Users/zengzhaoxia/mysql1/data:/var/lib/mysql -v /Users/zengzhaoxia/mysql1/conf:/etc/mysql/conf.d --name My-mysql mysql:5.7
      
      • 1
    2. 新建配置文件 my.cnf
      cd /Users/zengzhaoxia/mysql1/conf目录下,新建文件my.cnf,并输入如下内容

      [client]
      default_character_set=utf8
      [mysqld]
      collation_server=utf8_general_ci
      character_set_server=utf8
      
      • 1
      • 2
      • 3
      • 4
      • 5

      在这里插入图片描述

    3. 重启mysql容器
      因为修改了配置文件,所以需要重启mysql容器,并查看重启后容器的字符编码是否为utf8,输入命令:

      SHOW VARIABLES LIKE 'character%';
      
      • 1

      在这里插入图片描述

    4. 新建数据库、建表
      在这里插入图片描述

    5. 连接数据库,并插入数据
      使用工具连接数据库,我使用的Navicat Premium ,打开Navicat Premium ——连接——Mysql,会看到刚刚在容器中创建的数据库及数据表,并向表中插入数据。

      insert into t1 values(2,"曾");
      
      • 1

      在这里插入图片描述
      然后在容器中查看刚刚插入的数据,插入成功。
      在这里插入图片描述

    还有一点需要强调
    创建数据库一定要在修改完配置之后操作,要不然后面建表如果插入中文会比较麻烦。

    3. Docker 中安装Tomcat

    1. 第一步:拉取镜像

      docker pull tomcat 
      
      • 1
    2. 第二步:运行容器

      docker run -it d -p 5051:8080 --name="t3" tomcat
      
      • 1

      本地端口使用5051,映射到tomcat容器内端口8080,8080是tomcat默认端口,

      再次强调:-p小写,主机端口:docker容器端口

      -P大写,随机分配端口

      例如:

      docker run -it -P tomcat 运行之后系统会随机分配一个端口号

      注意:如果此时访问 http://127.0.0.1:5051/网址,则可能会出现404问题,所以还需要第三步操作

    3. 第三步:删除webapps文件,并将webapps.dist改名为webapps

      在最新tomcat版本中需要修改一下配置,实际是运行在webapps.dist中,之后重新访问 http://127.0.0.1:5051/网址,可访问成功。
      在这里插入图片描述

    补充
    如果不想这么麻烦,当然还有更方便的方式,使用billygoo/tomcat8-jdk8镜像,一步就可以搞定

    docker run -d -p 5055:8080 --name="t4"  billygoo/tomcat8-jdk8
    
    • 1

    容器运行之后,可直接访问 http://127.0.0.1:5055/

  • 相关阅读:
    P1031 [NOIP2002 提高组] 均分纸牌 【贪心】
    VS2015 Winform 添加文件后 中文乱码
    CLR C#--类型基础
    c++::作用域符解析
    HTML+CSS鲜花静态网页设计
    计算机毕业设计(附源码)python在线影评系统
    备战数学建模32-相关性分析2
    软件设计师考试学习2
    野火霸天虎 STM32F407 学习笔记_1 stm32介绍;调试方法介绍
    【scikit-learn基础】--『监督学习』之 贝叶斯分类
  • 原文地址:https://blog.csdn.net/weixin_42182599/article/details/127587939