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写入它的数据文件。
所以订单很重要