docker部署mysql并挂载数据卷

  1. 备份mysql源文件
    1. windows下备份数据库

      # 方法一:进入到mysql安装路径下的bin文件,执行备份命令
      # pg_dump -h localhost -p 数据库端口 -U 数据库用户名 -d 要备份的数据库名 > 备份后文件的路径\备份文件名
      mysqldump -hlocalhost -uroot -p demo_mysql > D:\demo_mysql.sql
      # 方法二:通过Navicat提取sql备份文件
      
    2. ubuntu下备份数据库

      # mysqldump -hIP -u用户名 -p 要备份的数据库名 > 备份后文件的路径\备份文件名
      mysqldump -hlocalhost -uroot -p demo_mysql > /home/demo_mysql.sql
      
  2. 创建数据卷
    # 创建总数据卷文件夹
    mkdir /home/centos/data-volume
    # 创建mysql数据卷文件夹
    mkdir /home/centos/data-volume/mysql-volume
    # 创建mysql-data、databasefile、log文件夹
    cd /home/centos/data-volume/mysql-volume; mkdir mysql-data; mkdir databasefile; mkdir log;
    
  3. 下载镜像并创建运行容器
    # 下载指定镜像版本或者下载最新版本(mysql:latest)
    docker pull mysql:5.7.30
    # 创建并运行容器
    docker run -it -d --name demo-mysql \
    -v /home/centos/data-volume/mysql-volume/mysql-data:/var/lib/mysql \
    -p 23307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.30
    
    参数 说明
    -i 以交互模式运行容器,通常与 -t 同时使用
    -t 为容器重新分配一个伪输入终端,通常与 -i 同时使用
    -d 后台运行容器,并返回容器ID
    –name 为容器指定一个名称
    -v 绑定一个数据卷,数据卷不会随着容器的删除而消失,格式为:主机(宿主)数据卷文件或目录:容器文件或目录
    -p 指定端口映射,格式为:主机(宿主)端口:容器端口
    -e 设置默认用户root的密码,格式为MYSQL_ROOT_PASSWORD=密码
  4. 查看容器信息
    # 查看容器是否运行
    docker ps
    # 查看容器列表(得到容器名或者容器ID)
    docker ps -a
    # 查看容器日志
    docker logs 容器名或者容器ID
    # 获取容器的元数据
    docker inspect 容器名或者容器ID
    
  5. 还原数据库
    1. 通过工具或者命令把最开始备份的文件上传到/home/centos/data-volume/mysql-volume/databasefile目录下

    2. 复制备份文件至容器中

      # docker cp 宿主机文件路径 容器名或者容器ID:容器文件路径
      docker cp /home/centos/data-volume/mysql-volume/databasefile/demo_mysql.sql demo-mysql:/home
      
    3. 进入容器

      # exec命令可以进入容器并且在退出时不会打断容器运行
      docker exec -it demo-mysql /bin/bash
      
    4. 登录mysql命令行控制台

      # mysql -U 用户名 -p
      mysql -u root -p
      # 输入创建容器时设置的密码
      
    5. 创建新的数据库(在执行还原命令前需要创建一个空的数据库)

      # 以下为mysql命令行控制台状态
      # 创建新的数据库(需要与原来数据库名相同)
      mysql> create database demo_mysql;
      # 查看数据库列表
      mysql> show databases;
      # 退出控制台状态
      mysql> \q
      
    6. 执行数据库还原命令

      # mysql -u用户名 -p 数据库名(需要与原数据库名相同) < 要导入的数据库数据(demo_mysql.sql)
      mysql -uroot -p demo_mysql < /home/demo_mysql.sql
      
    7. 退出容器

      exit 或者 Ctrl + D
      
  6. 保存日志
    # 将容器的日志实时下载到指定路径:  docker logs -f 容器名或者Id >> 路径/文件 &
    docker logs -f demo-mysql >> /home/centos/data-volume/mysql-volume/log/demo-mysql.log &
    #查看日志
    docker logs -f demo-mysql
    cat /home/centos/data-volume/mysql-volume/log/demo-mysql.log
    

docker部署mysql并挂载数据卷相关推荐

  1. Docker基本操作五 (挂载数据卷)

    挂载数据卷 我们在创建容器时,可以通过 -v 参数来挂载一个数据卷到某个容器目录 docker run \--name mn \-v html:/root/html \-p 8080:80nginx ...

  2. Docker 安装MySQL并使用数据卷实现数据持久化

    目录 一.获取镜像 二.运行容器,并做数据挂载 三.启动成功后,使用navicat连接测试一下 四.将容器删除 一.获取镜像 docker pull mysql:8.0 二.运行容器,并做数据挂载 d ...

  3. 使用Docker部署MySQL(数据持久化),将mysql的数据映射到本机磁盘

    本文简述如何使用Docker部署mysql,同时持久化数据.我们会用到tutum-docker-mysql 这个项目来搭建一个mysql,省去重头写Dockerfile的时间. 首先我们将tutum- ...

  4. Docker下部署Mysql映射端口并挂载数据卷

    Docker下部署Mysql映射端口并挂载数据卷 1.搜索mysql镜像文件版本 2.下载最新版本mysql 或者 下载指定版本mysql 2.1 下载最新版[一般项目不直接使用最新版] 2.2 下载 ...

  5. 【docker教程】docker视频教程(ubuntu)数据卷挂载、数据卷容器volume、端口映射(镜像叠加,分层复用)rootfs、bootfs(没看完)

    黑马程序员Docker容器化技术,从零学会Docker教程 可以先看1-13课.以及 docker概述 文章目录 docker概述 ubuntu安装docker docker架构 配置docker镜像 ...

  6. docker 打包mysql_基于docker部署mysql的数据持久化问题

    本人最近在使用docker部署mysql时,在持久化mysql数据时遇到了一个有趣的问题,将排查过程及思考记录在这里,以备后查. 先简单描述下我遇到的问题:在mysql容器中创建了两个数据库,然后使用 ...

  7. docker run 挂载卷_docker mysql配置挂载到卷

    docker--将mysql配置挂载到卷 1.首先在根目录创建两个文件夹,其中config文件夹中创建my.cnf配置文件.data文件夹存放数据文件,一定要为空. /docker/mysql/con ...

  8. mysql挂载数据卷_docker卷挂载技术

    卷技术,容器内部数据映射到宿主机上 一.直接使用命令来挂载 docker run -it -v /home/test:/home centos /bin/bash# 在主机上查看 docker运行容器 ...

  9. Docker 基本操作 数据卷 -- docker 数据卷基本操作、挂载数据卷

    文章目录 1. docker 数据卷基本操作 1.1 容器与数据耦合的问题 1.2 数据卷介绍 1.3 数据卷的基本语法 1.4 创建一个数据卷,并查看数据卷在宿主机的目录位置 1.5 小结 2. 挂 ...

最新文章

  1. poj1201Intervals(差分约束)
  2. vue开发(2) 使用vue-cli来构建项目
  3. 基于JAVA+SpringMVC+Mybatis+MYSQL的公司管理系统
  4. linux服务器忘记ssh密码_【Linux】配置linux服务器之间ssh不用密码访问
  5. java代码删除本地文件_java程序实现删除本地文件
  6. 关于filter用户授权的例子
  7. 聊聊身边的嵌入式—英语学习利器点读笔
  8. 第十三章:Sqlserver2019数据库之Transact-SQL 语法基础及常用 SQL 函数总结
  9. mysql out of range,mysql保存数据提示:Out of range value for column错误
  10. java.sql.SQLException: 要执行的 SQL 语句不得为空白或空值
  11. 转载(中文、日文、韩文编码问题)
  12. 【Appium】Python+Appium实现支付宝蚂蚁森林自动收取能量的一种解决方案
  13. 150行Python代码模拟太阳系行星运转
  14. android的A/B到底是什么?OTA升级又是什么?
  15. 华中科技大学 计算机硕士,我所经历的华中科技大学计算机考研复试
  16. Java比较日期时间大小
  17. GCC源代码分析(1): GCC中的树
  18. HarmonyOS - 华为智慧屏网络卡顿、跳帧解决方案
  19. DataGrip 连接 Hive 1.1
  20. 【CSDN如何创建博客专栏?】

热门文章

  1. TOJ 1804 The Machinegunners in a Playoff
  2. D. Playoff Tournament
  3. 如何成为一名优秀的UI设计师
  4. 神经网络学习之OctConv:八度卷积
  5. ubuntu 18.04 npm install 遇到的pngquant-bin 问题
  6. 山东省计算机专业专科排名2015,2015山东专科学校排名及排行榜
  7. 2021年的时间的朋友还在真好
  8. vue 项目打包 报错
  9. Ubuntu20.04创建虚拟网卡
  10. Node 实现爬虫 ?