• 容器数据卷+MYSQL实战


    什么是容器数据卷?

    让我们回忆一下docker理念:

    就是将应用和环境打包成一个镜像

    数据? 如果数据都在容器中,那么我们删除容器,数据就会丢失  !需求:数据持久化就完美了

    对于MYSQL,容器删除了,数据就没了        需求:MYSQL数据可以存储在本机就完美了

    容器之间可以有一个数据共享的技术,docker容器中产生的数据,同步到本地

    这就是卷技术  就是目录的挂载,将我们的容器内的目录,挂载到linux上面

    为什么要用卷技术:就是为了容器持久化和数据同步,同时容器之间也可以数据共享

    1.运行容器 

    -v就是挂载,把主机上的home下的ceshi目录挂载到容器中的home目录中(实现同步)

    以后我们只需要修改主机内的东西就行了,就能实现同步,不需要在进入容器,很方便

    2.因为第一个终端在容器中,另开个终端查看容器详细信息  docker inspect 容器id  

    3.查看挂载情况,容器内home目录与主机home下的ceshi目录做了绑定(同步的意思)

    4.测试是不是挂载成功,能不能同步(是容器home目录和主机home下的ceshi目录同步)

    在容器创建一个test.txt

    进入ceshi目录查看,发现同步过来了

    再来测试,当我们把centos容器停止掉exit,在主机添加东西,看看容器内会不会同步

    在主机test.txt中添加了hello world,看看容器在退出后能不能同步

    找到历史容器docker ps -a

    再次开启容器    docker start 容器id

    进入正在运行的容器 docker attach 容器id

    查看是否同步,发现同步过来了  (切记一定要切换到home目录,因为你的容器home目录才是和主机ceshi目录同步的)

    到此说明同步没问题

    实战MYSQL

    查找mysql镜像   docker search mysql

    下载mysql5.7版本 docker pull mysql:5.7

    查看镜像是否下载成功  docker images

    运行容器,并数据挂载,安装启动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

    -d 是后台运行   -p 是端口映射   -v是挂载  -e是环境配置  --name 是给容器取个新名字

    启动成功之后,我们在本地使用sqlyog来测试下

    用sqlyog连接到服务器3310    3310和容器3306映射,这个时候我们就可以连接上了,密码就是上面设置的密码123456

    在本地测试,创建一个数据库,查看一下我们的路径是否ok

    新建的数据库进到data目录中了,说明连接成功了

    尽管我们把容器删除了 docker rm -f mysql01

    发现,我么们挂载到本地的数据卷依旧没有丢失,这就实现了容器数据持久化功能 

  • 相关阅读:
    【AI视野·今日Robot 机器人论文速览 第五十五期】Mon, 16 Oct 2023
    linux开发常用命令
    Vuex的基础使用存值及异步
    RedissonCach的源码流程
    【uni-app】路由
    833. 字符串中的查找与替换-利用数组先判后补法-力扣双百代码
    golang - recover 使用笔记
    [CTF]2022美团CTF WEB WP
    解析java的Scanner类中next()方法和nextLine()的区别和联系
    实体和实体组的使用
  • 原文地址:https://blog.csdn.net/m0_67204892/article/details/134324542