文章目录

  • docker — volumes、MySQL数据库持久化
    • 一、概述
    • 二、配置步骤
      • 1. docker 安装 MySQL、持久化
    • 三、常用命令

docker — volumes、MySQL数据库持久化

一、概述

  1. 容器数据丢失情况:

    • 每个容器每次启动都是从镜像定义开始的。
      虽然容器可以创建、更新和删除文件,但当容器被移除并且所有更改都与该容器隔离时,这些更改会丢失。
    • 示例:
      • 如数据库相关操作中:
        利用 MySQL 镜像创建了 数据库容器,并且在容器中新建了数据库,正常使用没有问题。
        -> 但是当删除该容器(或者docker-compose方式 down 完,又重新构建容器),原来容器中的数据库文件将会丢失。
  2. volumes :

    • docker 提供了数据持久化的机制为 volumes,即为 挂载
    • volumes:提供了将容器的特定文件系统路径连接回主机的能力,如果容器中的目录已挂载,则该目录中的更改也会在主机上看到。如果我们在容器重启时挂载相同的目录,我们会看到相同的文件。

二、配置步骤

1. docker 安装 MySQL、持久化

以安装 MySQL 5.7 为例子:

  1. 核心配置:

    # 1. volumes 参数
    -v 【宿主机本地磁盘路径】:/var/lib/mysql# 2. 完整命令:
    docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -v 【宿主机本地磁盘路径】:/var/lib/mysql mysql:5.7# 3. 示例
    docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -v /home/xxx-user/mysql:/var/lib/mysql mysql:5.7
    
  2. 完整步骤:

    • 查看docker仓库中的 mysql 版本:

      docker search mysql
      
    • 选择数据库镜像,以5.7为例:

      docker pull mysql:5.7
      
    • 查看已下载的镜像:

      docker images
      

    • 启动Mysql容器

      # 启动容器,忽略MySQL大小写,设置数据库挂载到本地磁盘
      # 宿主机本地磁盘路径,示例:/home/xxx-user/mysql
      docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root --lower_case_table_names=1 -v 【宿主机本地磁盘路径】:/var/lib/mysql -d mysql:5.7# 完整示例
      docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -v /home/xxx-user/mysql:/var/lib/mysql -d mysql:5.7
      
    • 登录Mysql数据库:

      # 进入 mysql 终端
      docker exec -it 【容器id】 bash#输入命令,并按提示输入密码root
      mysql -u root -p
      

三、常用命令

  • 常用命令如下:

    # 创建volume:
    docker volume create【volume名称】# 查看volume参数:
    docker volume inspect【volume名称】# 使用volume:
    # -v 宿主机本地磁盘路径:容器内路径
    docker run -dit --name 【容器名称】 -v【volume名称】:/volume 【镜像名称】
    # 例如:
    docker run -d -p 3306:3306 --name mysql_test -e MYSQL_ROOT_PASSWORD=root -v volume-mysql:/var/lib/mysql mysql:5.7#查看docker数据卷
    docker volume ls# 删除volume:Remove one or more volumes
    docker volume rm 【volume名称】# 删除没使用的数据卷(谨慎使用):Remove all unused local volumes
    docker volume prune
    

docker — volumes、MySQL数据库持久化相关推荐

  1. docker中mysql数据库闪退的原因

    docker中mysql数据库闪退的原因 问题描述 可能原因 其他 更新 问题描述 在dockers中启动mysql容器,使用docker ps 发现没有正在启动的容器,使用 docker ps -a ...

  2. docker修改mysql数据库密码,redis密码

    1. docker修改mysql数据库密码 docker.cnf是宿主机的文件 第一次内容:vim docker.cnf [mysqld] skip-host-cache skip-name-reso ...

  3. 使用docker安装mysql数据库(超简单)

    拉取镜像 ubuntu@VM-4-3-ubuntu:~$ sudo docker pull mysql:5.7 官方文档启动方式 注意设置root账号密码 $ docker run --name so ...

  4. Python开发之:Django基于Docker实现Mysql数据库读写分离、集群、主从同步详解 | 原力计划...

    作者 | Pythonicc 责编 | 王晓曼 出品 | CSDN博客 简介 1.什么是数据库读写分离 读写分离,基本的原理是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELET ...

  5. docker登录mysql数据库_Docker下搭建mysql数据库

    1.获取官方镜像:[root@Centos7 mysql]# docker pull mysql/mysql-server:latest latest: Pulling from mysql/mysq ...

  6. docker登录mysql数据库_从docker容器连接到远程MySQL数据库

    我正在努力将一个Django 1.5.x应用程序容器化,该应用程序通过ODBC连接到单独服务器上的 MySQL数据库: [mysql_default] database = DB_NAME drive ...

  7. 基于docker的php调用基于docker的mysql数据库的方法

    1:建立基于docker的mysql,参考 Mac上将brew安装的MySql改用Docker执行 2:建立基于docker�php image 在当前目录,建立Dockerfile,内容如下 FRO ...

  8. ceph集群和数据库到底是储存数据_Python开发之:Django基于Docker实现Mysql数据库读写分离、集群、主从同步详解 | 原力计划...

    作者 | Pythonicc责编 | 王晓曼出品 | CSDN博客简介1.什么是数据库读写分离读写分离,基本的原理是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELETE),而从 ...

  9. docker 安装mysql_docker|docker安装mysql数据库

    javaDEMO 本网站记录了最全的各种JavaDEMO ,保证下载,复制就是可用的,包括基础的, 集合的, spring的, Mybatis的等等各种,助力你从菜鸟到大牛,记得收藏哦~~https: ...

最新文章

  1. Android 监听ScrollView的滑动
  2. Mysql 5.7 报错 3534 错误
  3. SAP Spartacus popover Component css 的重用设计
  4. eslint关闭===替换==;eslint关闭全等于校验;eslint关闭==校验
  5. 【华为云技术分享】华为专家亲述:如何转型搞 AI?
  6. 2022-2028年中国环保减速机行业运行动态及投资机会分析报告
  7. 将矩阵化为上三角矩阵
  8. Java实习日记(2-2)
  9. 在禁用uac_禁用仅管理员用户帐户控制(UAC)
  10. fast DFS 单机使用实例
  11. 后缀学习第三课(下)
  12. 网管实战:为网络系统构建ISA防火墙
  13. ResNet解析(二)
  14. CTF·Crypto·古典密码大全
  15. css3 3d 过 锯齿,css3 3d旋转 出现锯齿_html/css_WEB-ITnose
  16. 想知道录屏软件免费版有哪些?这4个工具能够做到,建议收藏备用
  17. 巨头集体跨界,老玩家悄然出圈,谁在争夺6亿电竞用户?
  18. COUNTIF函数:
  19. C++的strcmp
  20. IDEA通过插件安装Gitee并clone项目

热门文章

  1. 算法_趣味分数_Question5_列出真分数序列(java实现)
  2. 网页报错:You don't have permission to access
  3. 连接远程电脑虚拟机时,怎样重启远程电脑?
  4. 通过Keycloak API理解OAuth2与OpenID Connect
  5. Linux学习-96-win和vmware的linux系统之间文件传递
  6. 爱普生Epson LQ-680K 打印机驱动
  7. 仪表放大器和运算放大器优缺点对比
  8. 最新2019版个税计算器(5000起征点 + 个税专项扣除项)
  9. 基于L0边缘保持滤波的图像融合 matlab代码
  10. 如何清除 iPhone 上的其他存储来释放空间