如何使用mysql docker容器作为mysql服务器进行本地开发?

时间:2017-06-15 16:39:17

标签: mysql docker database-migration

我是docker技术的新手。现在我仍在使用xampp来开发PHP。最近,我在我的localhost上安装了docker。我已经完成了文档。现在是实施的时候了。我知道如何运行docker图像。但我想学习使用mysql docker容器进行本地开发的最佳方法。

我打算使用mysql docker容器而不是xampp的mysql。寻求最佳设置的帮助。

3 个答案:

答案 0 :(得分:5)

学习新技术很有好处。你想使用mysql容器而不是xampp stack的mysql。 你应该更喜欢官方形象。您可以在hub.docker.com搜索泊坞窗图片 您需要从命令行运行此命令。

docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=db-password -v /my/own/datadir:/var/lib/mysql mysql

上面的命令将创建名为mysql的docker容器。您可以使用命令中给出的用户root和密码在127.0.0.1:3306上访问它。 您的mysql数据将存储在/ my / own / datadir目录中。因此,您的数据将在重新启动后保留。

现在是时候将本地mysql服务器数据转储到容器mysql了。您可以使用此命令转储数据。假设您已创建备份转储文件(例如dbdump.sql)。将dbdump.sql文件复制到' / my / own / datadir /'

现在运行此命令。

docker exec -i -t mysql

从容器内部写下这些命令。

cd /var/lib/mysql
mysql -uroot -p < dbdump.sql

注意:在执行上述命令之前,需要停止xampp的mysql。询问时输入密码。

答案 1 :(得分:4)

因此,我个人最喜欢的方法是使用名为docker-compose的工具。它允许您定义一个简单的yaml文件,然后您可以访问一些前缀为docker-compose的额外命令。即docker-compose builddocker-compose up等等,它比运行一堆独立的docker命令和记住容器名称以便链接容器等等更方便。

举个例子来帮助理解这个docker-compose.yaml。在此文件中,您可以方便地声明您的服务(在本例中为 db php ansible &lt; - 每个都将是一个单独的容器),以及它们如何相互依赖,每个容器( build )的各个Dockerfile的路径以及其他好东西。

您还可以指定要使用的容器的环境信息(同样,对于我链接到的docker-compose,您可以看到 ports environment 用于指定容器需要的信息。在示例docker-compose文件中,在environment:服务的db:部分中,您可以看到指定此信息非常简单,并且在启动容器时,这些值将自动生成在安装/设置mysql时使用。它可以真正轻松拥有一个运行/配置的mysql,该mysql通过一个命令链接到其他容器。 您可以为容器指定其他环境变量(每个变量通常带有几个)点击here查看列表

看看我为LAMP堆栈开发设置的docker设置here。我在我自己的github中有几个不同的,但是如果你搜索github,你可以找到一个一堆的docker / docker-compose设置。当我需要回顾一下如何进行设置时,他们帮助我对Docker感到满意(有时甚至还有)。

可以找到一个非常有用的入门指南here。 Docker撰写单手使我的工作流程更容易理解/实施多次。这绝对值得一看。

答案 2 :(得分:0)

请找到此link,其中包含以下部分

  

卷:   DB_DATA:在/ var / lib中/ MySQL的

Mysql将安装在单独的容器中,但其 / var / lib / mysql 路径映射到文件夹的db_data。所以所有数据库都存储在db_data文件夹中。

  

php:

     

...   依赖于取决于:    D b   这里PHP容器与Mysql容器链接。

请在下面link查看详细信息。