MySQL docker 中的 MySQL conf 文件

Nyx*_*nyx 5 mysql ubuntu docker mysql-5.7

我正在使用官方 MySQL docker 映像创建的 docker 容器中运行 MySQL 5.7.20 。MySQLconf文件需要安装在主机Ubuntu系统上。

目前MySQL docker容器是使用命令启动的

sudo docker run -d \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=test \
-v /root/test/mysql/var/lib:/var/lib/mysql \
-v /root/test/mysql/etc:/etc/mysql \
--name test-mysql \
mysql:5.7
Run Code Online (Sandbox Code Playgroud)

但是里面没有conf文件/root/test/mysql/etc...连接到docker容器的bash,发现里面/etc/mysql是空的!

conf 文件位于哪里?/etc/mysql/conf.d/和中不应该有一些/etc/mysql/mysql.conf.d/吗?

yam*_*enk 6

如果运行命令而不安装任何卷:

$ docker run -it mysql ls /etc/mysql
conf.d  my.cnf  my.cnf.fallback  mysql.cnf  mysql.conf.d
Run Code Online (Sandbox Code Playgroud)

如果作为空文件夹/root/test/mysql/etc 存在/etc/mysql并且您将其安装到的所有内容/etc/mysql将被“替换”为/root/test/mysql/etc.

您可以有一个空/root/test/mysql/etc文件夹并执行以下操作:

docker volume create --driver local \
    --opt type=none \
    --opt device=/root/test/mysql/etc \
    --opt o=bind \
    mysql_vol
Run Code Online (Sandbox Code Playgroud)
sudo docker run -d \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=test \
-v /root/test/mysql/var/lib:/var/lib/mysql \
-v mysql_vol:/etc/mysql \
--name test-mysql \
mysql:5.7
Run Code Online (Sandbox Code Playgroud)