docker运行mysql的最佳方式

时间:2017-06-12 06:12:29

标签: mysql database docker containers

我是docker中的新手,我有两个微服务在两个容器中运行,我想为它们创建简单的数据库。 我创造了它:

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

然后我创建了数据库...但是当我去主机上的/ var / lib / mysql mysql我没有什么新东西 - 没有我用docker文件创建的数据库。我错了吗?

我想拥有存储在主机上的数据的数据库,但是在docker容器中运行(这是一个很好的解决方案吗?)?怎么做正确?

2 个答案:

答案 0 :(得分:2)

你不应该使用docker exec来创建一个实例:容器应该已经有一个。

该文件提到:

  

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

所以顺序很重要。

答案 1 :(得分:1)

docker 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