Hello! 欢迎来到小浪云!


Docker Compose 部署 MySQL 遇到错误:卷绑定问题如何解决?


avatar
小浪云 2024-11-12 44

Docker Compose 部署 MySQL 遇到错误:卷绑定问题如何解决?

docker-compose 部署 mysql 时遇到错误:解决卷绑定的问题

Ubuntu 系统中使用 docker compose 部署 mysql 时,你遇到了一个错误,错误信息为:

mysqld: can't read the directory of '/etc/mysql/conf.d/' (os error 2 - no such file or directory)
登录后复制

问题分析

你提供的 docker compose 配置文件中的卷绑定为:

- /data/docker/mysql/etc:/etc/mysql:ro
登录后复制

这意味着 docker 容器中的 /etc/mysql 目录会被映射到宿主机上的 /data/docker/mysql/etc 目录。然而,你的错误信息表明容器找不到 /etc/mysql/conf.d 目录。

解决方法

根据错误信息,你的宿主机上的 /data/docker/mysql/etc 目录中没有 conf.d 子目录。这个目录在容器的启动过程中会被用到。

要解决这个问题,请确保:

  1. 在宿主机上创建 /data/docker/mysql/etc/conf.d 目录。
  2. 从容器中复制 my.cnf 等必要文件到该目录。

修改后的 docker compose 配置文件如下:

volumes:   - /data/docker/mysql/mysql:/var/lib/mysql   - /data/docker/mysql/etc:/etc/mysql:ro   - /data/docker/mysql/etc/conf.d:/etc/mysql/conf.d:ro  # 添加 conf.d 卷绑定
登录后复制

确保上述步骤完成后,重新启动 docker compose 部署,错误应该消失。

相关阅读