微服务框架

SpringCloud微服务架构


文章目录

  • 微服务框架
  • SpringCloud微服务架构
  • 10 使用Docker
  • 10.9 数据卷挂载案例2
  • 10.9.1 直接开干
  • 10.9.2 数据卷挂载的方式对比
  • 10.9.3 总结


10 使用Docker

10.9 数据卷挂载案例2
10.9.1 直接开干

创建并运行一个MySQL容器,将宿主机目录【不一定是数据卷】直接挂载到容器

提示:目录挂载与数据卷挂载的语法是类似的:

  • -v [宿主机目录]:[容器内目录]
  • -v [宿主机文件]:[容器内文件]

实现思路如下:

  1. 在将课前资料中的mysql.tar文件上传到虚拟机,通过load命令加载为镜像
  2. 创建目录/tmp/mysql/data
  3. 创建目录/tmp/mysql/conf,将课前资料提供的hmy.cnf文件上传到/tmp/mysql/conf
  4. 去DockerHub查阅资料,创建并运行MySQL容器,要求:

①挂载/tmp/mysql/data到mysql容器内数据存储目录

②挂载/tmp/mysql/conf/hmy.cnf到mysql容器的配置文件

③设置MySQL密码

基于docker部署云桌面 docker clouddrive_spring cloud

就是它了

基于docker部署云桌面 docker clouddrive_微服务_02

直接拖到tmp 目录下【很离谱,笔者用的finalshell 非常慢】【当然也有可能是带宽限制,毕竟黑马老师用的是本地虚拟机,笔者用的是真的服务器】

试试xftp

基于docker部署云桌面 docker clouddrive_docker_03

等待上传完成

基于docker部署云桌面 docker clouddrive_spring cloud_04

OK

基于docker部署云桌面 docker clouddrive_架构_05

加载镜像

docker load -i mysql.tar

基于docker部署云桌面 docker clouddrive_微服务_06

OK,可以看到版本是5.7.25

创建两个目录

[root@dingjiaxiong tmp]# mkdir -p mysql/data [root@dingjiaxiong tmp]# mkdir -p mysql/conf

基于docker部署云桌面 docker clouddrive_docker_07

基于docker部署云桌面 docker clouddrive_微服务_08

OK

上传配置文件到 conf 目录下

基于docker部署云桌面 docker clouddrive_docker_09

OK

【运行MySQL 容器】

查看官方文档:https://hub.docker.com/_/mysql

基于docker部署云桌面 docker clouddrive_基于docker部署云桌面_10

往下滑

基于docker部署云桌面 docker clouddrive_微服务_11

小改一下

先看看容器中的配置目录

基于docker部署云桌面 docker clouddrive_docker_12

OK,数据目录

基于docker部署云桌面 docker clouddrive_架构_13

OK

所以总的启动容器命令:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=200039 -p 3306:3306 -v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf -v /tmp/mysql/data:/var/lib/mysql -d mysql:5.7.25

基于docker部署云桌面 docker clouddrive_微服务_14

OK

先开个端口

基于docker部署云桌面 docker clouddrive_微服务_15

OK,看看现在的data 目录

基于docker部署云桌面 docker clouddrive_spring cloud_16

OK

现在在本机上用Navicat 尝试连接

基于docker部署云桌面 docker clouddrive_docker_17

没毛病,之后就是使用了

10.9.2 数据卷挂载的方式对比

基于docker部署云桌面 docker clouddrive_spring cloud_18

一个自动化但隐藏了细节,一个实现了细节但是是手动

10.9.3 总结
  1. docker run的命令中通过 -v 参数挂载文件或目录到容器中:

①-v volume名称:容器内目录

②-v 宿主机文件:容器内文件

③-v 宿主机目录:容器内目录

  1. 数据卷挂载与目录直接挂载的

①数据卷挂载耦合度低,由docker来管理目录,但是目录较深,不好找

②目录挂载耦合度高,需要我们自己管理目录,不过目录容易寻找查看