Docker 安装MySQL并配置my.cnf

2025-10-20 06:24:04

1、直接docker pull mysql:5.7,等待下载安装完成

Docker 安装MySQL并配置my.cnf

2、然后先创建一个临时的mysql,以便复制出my.cnf等数据

docker run --rm --name mysqlTemp -it -v /usr/local/mysql/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456  mysql:5.7 /bin/bash

cp /etc/mysql/my.cnf /var/lib/mysql

-- rm 退出后就删除该容器

-v /usr/local/mysql/:/var/lib/mysql  装主机目录/usr/local/mysql/映射Docker中的/var/lib/mysql目录

-it 交互模式

/bin/bash 进入 bash 命令模式

Docker 安装MySQL并配置my.cnf

3、拷贝配置文件,把Docker中的/etc/mysql/my.cnf文件拷贝到Docker的/var/lib/mysql目录,及主机的/usr/local/mysql/目录中

cp /etc/mysql/my.cnf /var/lib/mysql

Docker 安装MySQL并配置my.cnf

4、另启一个终端,查看拷贝出来的/usr/local/mysql/my.cnf文件。

如果是完整的mysql配置文件,直接跳到第8步。如果不是,继续向下看

Docker 安装MySQL并配置my.cnf

5、这里的my.cnf文件不是完整的mysql配置,而是引用了其他目录下的。我们可以看到这里引用了二个目录,可以在第一个bash终端中ls查看这二个目录

/etc/mysql/conf.d/

/etc/mysql/mysql.conf.d/

Docker 安装MySQL并配置my.cnf

6、同样把这二个目录拷贝到/var/lib/mysql下

cp -R /etc/mysql/conf.d/ /var/lib/mysql/conf.d

cp -R /etc/mysql/mysql.conf.d/ /var/lib/mysql/mysql.conf.d

Docker 安装MySQL并配置my.cnf

7、退出bash,Docker中临时用的mysqlTemp会被删除

然后可以查看/usr/local/mysql/目录下有mysql所有的配置文件

Docker 安装MySQL并配置my.cnf

8、这里就可以修改配置了。

改完之后,创建正式的mysql容器

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123455 -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/my.cnf:/etc/mysql/my.cnf -v /usr/local/mysql/conf.d:/etc/mysql/conf.d -v /usr/local/mysql/mysql.conf.d:/etc/mysql/mysql.conf.d -d mysql:5.7

如果my.cnf 是完整的配置,这里不需要映射conf.d和mysql.conf.d这二个目录

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123455 -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/my.cnf:/etc/mysql/my.cnf  -d mysql:5.7

--name 容器名称

-p 端口映射

-v 配置文件映射:将 宿主机上修改的自定义配置文件,映射到 容器中

-e MYSQL_ROOT_PASSWORD   设置root密码

-d 守护进程模式运行

Docker 安装MySQL并配置my.cnf

9、还有另一种办法,就是从docker镜像文件里面复制出配置文件来。

就是用 find / -name my.cnf 

全盘搜索

这里已经启动过容器且主机上有一份了,如果没有,只会在/var/lib/docker/aufs/diff目录下存在

Docker 安装MySQL并配置my.cnf

10、进入diff下mysql所在的目录

cd /var/lib/docker/aufs/diff/bf865af347ec8b51bd8e949436b8dcde762de61c6e649c6a779fd79f13493e82/etc/mysql/

可以看到同样的配置文件,其中my.cnf是红色的,这是一个连接文件,找到原文件在alternatives/my.cnf下。把这几个配置复制出来,参考第8步,也可以配置mysql

Docker 安装MySQL并配置my.cnf

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢