docker--将mysql配置挂载到卷

1、首先在根目录创建两个文件夹,其中config文件夹中创建my.cnf配置文件。data文件夹存放数据文件,一定要为空。

/docker/mysql/config/、/docker/mysql/data

2、修改my.cnf文件

[mysqld]

user=mysql 一定要以这两行开头。

更多的配置可以到dockerhub官方mysql/mysql-server镜像源中查看

https://hub.docker.com/r/mysql/mysql-server

[mysqld]
user=mysql
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

3、执行以下命令挂载卷

docker run -d -p 3306:3306 --name mysql01
-e MYSQL_ROOT_PASSWORD="password"
-e MYSQL_USER="LZL"
-e MYSQL_PASSWORD="pwd123"
-v=/docker/mysql/config/my.cnf:/etc/my.cnf
-v=/docker/mysql/data:/var/lib/mysql
mysql/mysql-server

-v 为卷,映射本地文件夹到容器中的文件。localhost:container 前者是本机的文件:后者是容器的文件。

4、启动一些问题

启动后,通过docker ps 发现容器并没有启动

docker ps -a 查看所有容器,发现容器处于退出状态

此时我们通过docker logs mysql01查看容器的一些错误信息。

发现是权限不足,导致容器启动后立马stop。

docker run -d -p 3306:3306 --name mysql01
--privileged=true
-e MYSQL_ROOT_PASSWORD="password"
-e MYSQL_USER="LZL"
-e MYSQL_PASSWORD="pwd123"
-v=/docker/mysql/config/my.cnf:/etc/my.cnf
-v=/docker/mysql/data:/var/lib/mysql
mysql/mysql-server

解决方法:--privileged=true加入该参数授权。

当修改配置的时候,只需修改/docker/mysql/config/my.cnf文件,restart容器,配置即可生效。

docker mysql配置挂载到卷的更多相关文章

  1. docker mysql 文件挂载和MySQL字符集设置

    原文:docker mysql 文件挂载和MySQL字符集设置 docker run -p 3306:3306 --name mysql -v /usr/local/mysql/my.cnf:/etc ...

  2. 【Docker】:使用docker安装mysql,挂载外部配置和数据

    普通安装 1.下载镜像,mysql 5.7 docker pull mysql:5.7 2.创建mysql容器,并后台启动 docker run -d -p 3306:3306 -e MYSQL_US ...

  3. mysql docker 主从配置

    主从复制相关 前置条件: docker安装的mysql是5.7.26版本 1. 编排docker-compose文件如下: version: '3' services: mysql-master: v ...

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

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

  5. Linux(Manjaro) - Docker - MySQL 安装配置

    Linux(Manjaro) - Docker - MySQL 安装配置 拉取mysql镜像 # 使用网易的 MySQL 镜像地址 docker pull hub.c.163.com/library/ ...

  6. 在docker容器下利用数据卷实现在删除了mysql容器或者镜像的情况下恢复数据

    当把mysql容器销毁,在新建一个容器,进行之前的数据恢复. 因为之前建立了数据卷,那么现在就可以利用这个数据卷进行数据恢复. 使用docker volume create volume_name命令 ...

  7. 『现学现忘』Docker基础 — 32、通过DockerFile的方式挂载数据卷

    目录 1.简单了解一下DockerFile 2.通过DockerFile的方式挂载数据卷 (1)创建DockerFile文件 (2)编辑Dockerfile文件 (3)构建Dokcer镜像 (4)启动 ...

  8. Docker Mysql主从同步配置搭建

    Docker Mysql主从同步配置搭建 建立目录 在虚拟机中建立目录,例如路径/home/mysql/master/data,目录结构如下: Linux中 新建文件夹命令:mkdir 文件夹名 返回 ...

  9. docker完整配置nginx+php+mysql

    首先了解一个方法: 使用docker exec进入Docker容器 docker在1.3.X版本之后还提供了一个新的命令exec用于进入容器,这种方式相对更简单一些,下面我们来看一下该命令的使用: s ...

随机推荐

  1. AbstractExecutorService的submit方法概要介绍

    1.概述 ExecutorService是JDK提供的框架,它简化了异步模式下的任务执行.一般来说,ExecutorService会自动提供一个线程池和API,用于为其分配任务. 2.实例化Execu ...

  2. SpringMVC method属性与http请求方法一致

    在springMVC中,@requestMapping注解有method属性,在没有指定method的值时,默认映射所有http请求方法,如果仅想接收一种请求方法,需用method=RequestMe ...

  3. 数组的查找,删除 Day07

    package com.sxt.arraytest2; /* * 形参列表的作用:1.接受方法调用处传来的实参 * 2.规定了实参传入数据的类型 */ import java.util.Arrays; ...

  4. 2018-9-30-VisualStudio-使用多个环境进行调试

    title author date CreateTime categories VisualStudio 使用多个环境进行调试 lindexi 2018-09-30 18:39:26 +0800 20 ...

  5. Java练习 SDUT-3328_JAVA判断合法标识符

    JAVA判断合法标识符 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入若干行字符串,判断每行字符串是否可以作为JA ...

  6. Getting started with the basics of programming exercises_4

    1.编写一个删除C语言程序中所有的注释语句的程序.要正确处理带引号的字符串与字符串常量,C语言中程序注释不允许嵌套. #include<stdio.h> void rcomment(int ...

  7. 【Pandas】Pandas求某列字符串的长度,总结经验教训

    测试集大小: test.shape(898, 11) 对某列的字符串做统计长度1.for遍历法:start = time.time()for i in test.index.values: test. ...

  8. 2019-11-17-dotnet-C#-获取本机外网-IP-地址

    title author date CreateTime categories dotnet C# 获取本机外网 IP 地址 lindexi 2019-11-17 16:38:10 +0800 201 ...

  9. GPUtil是一个Python模块,使用nvidia-smi从NVIDA GPU获取GPU状态

    GPUtil是一个Python模块,使用nvidia-smi从NVIDA GPU获取GPU状态 一个Python模块,用于在Python中使用nvidia-smi以编程方式从NVIDA GPU获取GP ...

  10. HDU1686 Oulipo 题解 KMP算法

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1686 题目大意:给你一个子串t和一个母串s,求s中有多少个子串t. 题目分析:KMP模板题. cal_ ...