mysql - 是否存在创建附加卷并执行 sql 脚本的 mysql docker 镜像的方法?

标签 mysql docker

我正在尝试在 docker 上使用 MySQL 镜像,附加一个卷,此外我想添加一个 sql 脚本以创建一个表(如果还没有)。 因此,如果容器在另一台机器上使用,该表将始终存在。


我的命令:

docker run -d -p 3306:3306 --name my-mysql --network sma -v/scripts:/docker-entrypoint-initdb.d/-v/myvolume/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=密码 -e MYSQL_DATABASE=myDB mysql

我的情况: 我可以在运行期间使用 -v 选项 (/myvolume/:/var/lib/mysql) 附加卷,实际上我还可以将脚本插入 init 目录 (/docker-entrypoint-initdb.d/) 但如果我做这两件事,只有卷附加会起作用。

我猜这类似于脚本被执行(因为它被放置在目录中)但随后 MySQL 被附加的卷覆盖,所以我唯一看到的是 myvolume 中存在的内容。

有什么方法可以做到这一点?

最佳答案

我决定在带有 docker stack deploy -c docker-compose.yml swarm_name 的 docker-compose 群中使用它。

在 docker-compose 的服务定义中,我添加了命令行以强制它执行初始化脚本。

command: --init-file /docker-entrypoint-initdb.d/initDb.sql

关于mysql - 是否存在创建附加卷并执行 sql 脚本的 mysql docker 镜像的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53561401/

相关文章:

mysql - 通过自定义函数对数据库中的查询结果进行排序

docker - 为什么我应该使用 docker 镜像存储库而不是从 Dockerfile 构建?

python - 如何将Heruko与本地计算机的Docker API(Python SDK)结合使用?

docker - 将 ssh-agent 传递给 dockerfile 以安装私有(private)存储库模块

node.js - 【Hyperledger Fabric】无法向peer发送调用请求

MYSQL按一天中非日历日的时间进行分组

java - 如何重用 JDBC 语句并自动关闭结果集?

mysql - 如何使用 mysqldump 转储默认时间戳值?

mysql - 根据之前更新的值mysql更新值

windows - 在 Windows 上使用 docker-machine 将远程机器目录挂载到其容器