【发布时间】:2019-07-28 18:25:38
【问题描述】:
过去几天我一直在使用 Docker,希望尽快将我的 Python-MySQL webapp 迁移到 Docker。
推论是我需要使用 Docker 卷并且最近被难住了。我可以直接通过
创建一个卷$ docker volume create my-vol
或间接通过在 docker run 调用中引用不存在的卷,但我无法弄清楚如何使用我的 .sql 数据库文件填充这些卷,而不通过 Dockerfile 中的 COPY 调用复制文件。
我尝试直接在包含 .sql 文件的目录中创建卷(上面提到的第一种方法)并在我的“docker run”调用中安装包含 .sql 文件的目录,这确实将 .sql 文件移动到容器(我通过导航容器内的 bash shell 看到它)但是当运行连接到包含数据库的 mariadb 容器的 mariadb 容器时(如 mariadb docker 自述文件中所建议的那样),它只有标准数据库(information_schema , mysql, performance_schema)
如何创建包含我预先存在的 .sql 数据库的卷?
【问题讨论】:
-
为什么不绑定主机路径
-v /var/lib/mysql/data.sql:/somewhere/data.sql? -
@HernanGarcia 这是否意味着对数据库的任何更改都会传递到本地版本?我尝试了这个,我可以将 .sql 文件放入容器的 mariadb 的唯一方法是使用
mysql -u root -p NHL_Database < data.sql导入。然后,我检查了作为挂载的本地目录,它的“修改”时间签名没有改变。
标签: mysql docker mariadb docker-volume