docker工人运行mysql的最佳方式

我是新的docker工人,我有两个微服务在两个容器中运行,我想为他们创build简单的数据库。 我是这样创build的:

docker run --net=kajsnetwork -d -e MYSQL_ROOT_PASSWORD='mypassword' -v /storage/mysql1/mysql-datadir:/var/lib/mysql mysql 

我进入容器使用

 docker exec -it containernumber /bin/bash 

然后我创build数据库…但是,当我去/ var / lib / mysql的主机上我没有没有什么新的 – 没有数据库,我从docker文件创build。 我有什么问题吗?

我想有数据库存储在主机上的数据,但运行在docker集装箱(这是很好的解决scheme?)? 如何正确地做到这一点?

-v /storage/mysql1/mysql-datadir:/var/lib/mysql cmd选项-v /storage/mysql1/mysql-datadir:/var/lib/mysql表示将主机目录/storage/mysql1/mysql-datadir/var/lib/mysql作为容器数据卷

所以如果你从容器中检查/var/lib/mysql ,你的主机应该会看到与/storage/mysql1/mysql-datadir相同的内容。

更多细节: https : //docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume

你不应该有docker exec来创build一个实例:容器应该已经有一个了。

该文件提到:

该命令的-v /my/own/datadir:/var/lib/mysql部分在容器内将底层主机系统/my/own/datadir目录挂载为/var/lib/mysql ,其中默认情况下为MySQL写入它的数据文件。

所以订单很重要