环境

  • Centos:7
  • Docker: 17.05-ce
  • Mysql: 5.7

1. Mysql外部数据和配置文件路径

  1. msyql配置文件路径:/etc/mysql
  2. mysql数据卷路径:/var/lib/mysql
1.1. 拉取mysql:5.7镜像
docker pull mysql:5.7

2. 创建mysql:5.7容器

宿主机mysql配置文件路径:/root/docker/mysqletc/mysql
宿主机mysql数据卷路径:/root/docker/mysqletc/data
注:路径可以自己定义
2.1. 创建一个临时的msyql:5.7容器,目的是cp 容器里mysql的配置文件
docker run -d -p 3306:3306 --name myMysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7
2.2. 复制容器中的mysql配置文件到宿主机指定目录
从容器中将文件拷贝出来的命令:dokcer cp 容器名称:容器目录 需要拷贝的文件或目录

docker cp myMysql:/etc/mysql /root/docker/mysqletc
2.3. 停止并删除刚才创建的临时容器
docker stop myMysql
dokcer rm myMysql
2.4. 创建并启动mysql:5.7容器
docker run -d --name mysql5.7 -p 33306:3306 --restart always --privileged=true -v /root/docker/mysqletc/mysql:/etc/mysql -v /root/docker/mysqletc/data:/var/lib/mysql -e MYSQL_USER="summit" -e MYSQL_PASSWORD="summit" -e MYSQL_ROOT_PASSWORD="root" mysql:5.7
2.5. 大功告成,查看容器日志
docker logs -f mysql5.7

3. 涉及到的命令行参数

--restart always                                -> 开机启动
--privileged=true -> 提升容器内权限
-v /root/docker/mysqletc/mysql:/etc/mysql -> 映射配置文件
-v /root/docker/mysqletc/data:/var/lib/mysql -> 映射数据目录
-e MYSQL_USER="summit" -> 添加用户summit
-e MYSQL_PASSWORD="summit" -> 设置summit用户的密码为summit
-e MYSQL_ROOT_PASSWORD="root" -> 设置root的密码为root

参考链接:

https://www.cnblogs.com/0oliumino0/p/10538207.html

Docker 安装mysql容器数据卷挂载到宿主机的更多相关文章

  1. docker创建mysql容器,并挂载数据+配置

    新建:/my/mysql/my.cnf (准备挂载配置文件用) 将以下内容拷贝进去(或者启动一个docker的mysql,并且把/etc/mysql/my.cnf中的内容拷贝出来) # Copyrig ...

  2. docker系列之六容器数据卷

    docker之容器数据卷 一.容器数据卷 docker容器运行的时候,会产生一系列的文件,那么我们希望容器产生的数据能提供给其他的容器使用,也就是说怎么实现容器间的数据的共享呢?这就需要用到我们所提到 ...

  3. Docker安装MySQL 8.0并挂载数据及配置文件

    安装部署环境 Ubuntu 18.04.3 LTS Docker 19.03.2 MySQL latest(8.0.17) 下载镜像 # docker从仓库中拉取最新版的mysql镜像,如果没加标签的 ...

  4. docker安装mysql容器后,是用navicat连接报client does not support authentication protocol requested by server consider upgrading mysql client

    #进入容器 docker exec -it mysql bash#进入mysqlmysql -u root -p#重置密码ALTER USER 'root'@'%' IDENTIFIED WITH m ...

  5. docker 安装mysql 并将文件挂载到本地

    首先准备好挂载的文件路径 执行mysql创建以及挂载的命令(这里还可以使用-e环境变量来创建新用户MYSQL_USER,MYSQL_PASSWORD) docker run -d -p : --res ...

  6. docker 命令添加容器数据卷

    实现宿主机和容器的数据共享 只要建立连接,即使容器exit,主机的修改仍能提现到容器

  7. 5、docker容器数据卷: -v添加共享传递容器数据卷

    1.是什么 1.docker理念 先来看看Docker的理念:*  将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的*  容器之间希望有可能共享数据 2.保 ...

  8. Docker Kubernetes Volume 网络数据卷

    Docker Kubernetes Volume 网络数据卷 由于支持网络数据卷众多 今天只拿nfs作为案例. 支持网络数据卷 nfs iscsi glusterfs awsElasticBlockS ...

  9. 安装docker及使用docker安装其他软件(手动挂载数据卷)

    中秋明月,豪门有,贫家也有,极慰人心 Linux安装docker 可以参考官方的安装文档 centos安装docker: https://docs.docker.com/engine/install/ ...

随机推荐

  1. 基于Web实现在线绘画拓扑图[GraphEditor]

    网络拓扑图本来已经整理有一段时间了,一次项目会议写集中边界监控系统的时候上级要求使用可以在系统中画网络拓扑图,没办法当时找不到现有的程序来参考 只能硬着头皮,顶着风险来完成[当然来边界安全的,当然要安 ...

  2. C Shell中的变量数组

    今天刚刚在看一点C Shell的内容,发现一个挺好玩的东西!就是环境变量可以像数组那样来设置!具体设置语法如下: set variable=(element1 element2 ...) //注意元素 ...

  3. python 教程 第九章、 类与面向对象

    第九章. 类与面向对象 1)    类 基本类/超类/父类被导出类或子类继承. Inheritance继承 Inheritance is based on attribute lookup in Py ...

  4. python 教程 第七章、 数据结构

    Python中有三种内建的数据结构——列表.元组和字典. 1)    Lists列表 [,] 列表是序列的一种 shoplist = ['apple', 'carrot', 'banana'] pri ...

  5. 运行该脚本出现/bin/sh^M: bad interpreter: No such file or directory

    错误中脚本文件的一个非常可能的原因是DOS格的, 即每一行的行尾以\r\n来标识, 其ASCII码各自是0x0D, 0x0A.  能够有非常多种办法看这个文件是DOS格式的还是UNIX格式的, 还是M ...

  6. asp.net (webapi) core 2.1 跨域配置

    原文:asp.net (webapi) core 2.1 跨域配置 官方文档 ➡️ https://docs.microsoft.com/zh-cn/aspnet/core/security/cors ...

  7. DWZ使用注意事项

    DWZ使用注意事项 一.前言     在最近的一个项目,介绍DWZ丰富client框架,可以尝试一下.另外,在遇到的很多问题.十一终于攻克. 特别说明本文的.     本人用的是dwz-ria-1.4 ...

  8. Swift - 关于 Optional 的一点唠叨

    Optional 是 Swift 的一个非常重要的特性,它除了提供类型安全的机制,也是 Swift 中很多语言特性的核心.当然,使用 Optional 时也要了解很多坑,这样能帮助我们更好的运用它. ...

  9. XF 标签页面

    using System; using Xamarin.Forms; using Xamarin.Forms.Xaml; [assembly: XamlCompilation (XamlCompila ...

  10. JS 小鸟飞

    <!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...