众所周知,如果我们要把项目放在服务器上运行,那么数据存储就是必需的,就用这篇小小文章记录一下我的经历吧。

MySQL是一个关系型数据库管理系统,也是是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

docker nacos 拉取 docker拉取mysql_阿里云


图片来源:一个小城市夜晚

作者: 博主

阿里云Docker安装Mysql 带步骤图

  • 一、Docker 搜索Mysql 镜像
  • 二、Docker 拉取Mysql 镜像
  • 三、Docker 查看全部镜像
  • 四、Docker 启动Mysql镜像
  • 五、Docker 查看全部容器
  • 六、Docker 查看运行日志
  • 七、外部测试
  • 八、自言自语


一、Docker 搜索Mysql 镜像

docker 搜索镜像命令 docker search <镜像名字>:<版本号>

docker search mysql

docker nacos 拉取 docker拉取mysql_linux_02

👴🧓

二、Docker 拉取Mysql 镜像

docker 拉取镜像命令 docker pull <镜像名字>:<版本号>

docker pull mysql:5.7

docker nacos 拉取 docker拉取mysql_mysql_03

三、Docker 查看全部镜像

docker images

docker nacos 拉取 docker拉取mysql_docker_04

四、Docker 启动Mysql镜像

docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d     -v/home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

docker 中启动时可带参数很多,这里只讲这次mysql 启动所用到的参数。

解释:👨🏭

  1. docker run :启动镜像命令
  2. -d:在后台运行容器,并打印容器id。
  3. -p:发布列表将容器的端口发布到主机 (即端口映射)
  • 注意: 要打开服务器安全组哈。不然访问不了。
  • 此处所写的 3310:3306 的意思是:
    🦸♀️
  • docker nacos 拉取 docker拉取mysql_mysql_05

  1. -v:文件挂载。
  • 此处 -v /home/mysql/data:/var/lib/mysql 的意思是 将 宿主机中的目录 “/home/mysql/data”mysql容器中的文件目录 “/var/lib/mysql” 进行 挂载形象理解:即双向绑定,修改宿主机的文件,容器内的文件也随之更改)。
  • 注意: 宿主机我们要绑定的文件目录,只用写明,不用主动创建,在启动过程中,会自动创建。
  1. -e: 设置环境变量。
  • 此处:MYSQL_ROOT_PASSWORD=123456 设置Mysql 管理员密码。
  1. –name:为启动的容器取一个名字,此处即为 启动的mysql 容器取名为:mysql01
  2. mysql:5.7: 为镜像名称 mysql 为镜像名称,: 后的 5.7 为指定版本 。 不指定 Docker 会自动去中央仓库拉取最新版。

docker nacos 拉取 docker拉取mysql_docker_06

注意:有时候我们启动完成了,打印出容器id,但是并不代表,我们一定是启动成功了的。

可以通过以下几个方式来判断:1、查看容器运行日志,2、通过外部访问 (后文有)

五、Docker 查看全部容器

docker ps -a

: -a 就是查询全部的容器 ,不带 -a 参数就是查询运行中的容器

不带 -a参数:

docker nacos 拉取 docker拉取mysql_docker_07

带 -a参数:

docker nacos 拉取 docker拉取mysql_mysql_08

六、Docker 查看运行日志

基本格式:docker logs [OPTIONS] CONTAINER 👨💻

OPTIONS:可带参数 见下图。

docker nacos 拉取 docker拉取mysql_docker nacos 拉取_09

  • –details 显示更多的信息
  • -f, --follow 跟踪实时日志
  • –since string 显示自某个timestamp之后的日志,或相对时间,如30m(即30分钟)
  • –tail string 从日志末尾显示多少行日志, 默认是all
  • -t, --timestamps 显示时间戳
  • –until string 显示自某个timestamp之前的日志,或相对时间,如30m(即30分钟)

举例:

1、查看此容器全部运行日志:

docker logs  <容器id>

2、查看日志,只显示最后200行

docker logs --tail 200 CONTAINER_ID

3、查看最近30分钟的日志

docker logs --since 30m CONTAINER_ID

4、查看某时间之后的日志

dockere logs -t --since "2020-10-25T14:06:30" CONTAINER_ID

5、查看某时间段之间的日志

docker logs -t --since "2020-10-25T14:06:30" --until "2020-10-26T14:06:30" CONTAINER_ID

七、外部测试

docker nacos 拉取 docker拉取mysql_docker nacos 拉取_10


我们连接完成后,在这里操作,然后去 服务器上查看,看是否成功。

docker nacos 拉取 docker拉取mysql_docker nacos 拉取_11


创建完成后,我们去服务器上查看。

进入容器命令

docker exec -it <容器名>  /bin/bash

docker nacos 拉取 docker拉取mysql_docker_12


通过 show databases;查看此时有多少数据库。证明我们操作成功拉。

docker nacos 拉取 docker拉取mysql_docker_13

web 配置文件书写:

url: jdbc:mysql://ip地址:3310/test?useSSL=false&characterEncoding=utf8&serverTimezone=GMT

注:端口设置成什么即填写什么。

八、自言自语

注意: 这么使用mysql 存在一定安全问题,因为我的没有什么重要文件,才如此做的,对外开放端口,存在一定的危险性。 自己写着玩的,肯定不影响的,没有问题的,如果是需要考虑这方面问题的,可以去查看 docker 容器连接 相关的文章,即可解决。
最近在整理文章的时候,发现写了不少Docker方面的文章,这次就打算把初阶阶段方面的知识点都补一补。👩💻👩💻