是否存在一种创建带有附加卷的mysql docker映像并执行sql脚本的方法?

时间:2018-11-30 16:28:54

标签: 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中存在的内容。

有某种方法可以使它起作用?

1 个答案:

答案 0 :(得分:1)

我决定在docker-compose中将其与docker stack deploy -c docker-compose.yml swarm_name一起使用。

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

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