【问题标题】:docker best way to run mysqldocker运行mysql的最佳方式
【发布时间】:2017-06-12 06:12:29
【问题描述】:

我是 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 容器中运行(这是一个好的解决方案吗?)?如何正确执行?

【问题讨论】:

  • 我认为您需要做的就是交换卷。第一个路径来自主机。

标签: mysql database docker containers


【解决方案1】:

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

文档提到:

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

所以顺序很重要。

【讨论】:

    【解决方案2】:

    docker cmd 选项-v /storage/mysql1/mysql-datadir:/var/lib/mysql 表示你将host目录/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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-19
      • 1970-01-01
      • 2012-06-07
      • 2016-06-09
      • 1970-01-01
      • 2016-06-06
      相关资源
      最近更新 更多