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

Om *_*uri 2 mysql database-migration docker

我是Docker技术的新手。现在,我仍在使用xampp进行PHP开发。最近,我在本地主机上安装了docker。我已经阅读了文档。现在该付诸实践了。我知道如何运行docker映像。但是我想学习使用mysql docker容器进行本地开发的最佳方法。

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

And*_*w B 7

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

为了给出一个例子来帮助理解,请参阅这个docker-compose.yaml。在此文件中,您可以方便地声明您的服务(在本例中为db、php和ansible <- 每个服务都是一个单独的容器),以及它们如何相互依赖,每个容器的单个 Dockerfile 的路径(构建)和其他好东西。

您还可以指定容器使用的环境信息(同样,对于我链接到的 docker-compose,您可以看到ports、volumes和environment来指定容器所需的信息)。在示例 docker-compose 文件中的服务environment:部分中db:,您可以看到指定此信息很简单,并且启动容器后,在安装/设置 mysql 时将自动使用这些值。使用一个命令将正在运行/配置的 mysql 链接到其他容器是非常容易的。您还可以指定容器使用的其他环境变量(每个环境变量通常带有多个)单击此处查看列表

在这里查看我为 LAMP 堆栈开发所做的 docker 设置。我自己的 github 中有几个不同的,但是如果你搜索 github,你可以找到一堆docker /docker-compose 设置。当我需要回顾如何设置某些东西时,他们帮助我熟悉了 docker(有时仍然如此)。

可以在这里找到非常有用的入门指南。Docker compose 已经多次让我的工作流程更容易理解/实现。这绝对值得一看。


Vir*_*eja 5

学习新技术很好。您要使用mysql容器而不是xampp堆栈的mysql。您应该喜欢官方形象。您可以在hub.docker.com上搜索Docker映像。 您需要从命令行运行此命令。

docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=db-password -v /my/own/datadir:/var/lib/mysql mysql
Run Code Online (Sandbox Code Playgroud)

上面的命令将创建名为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
Run Code Online (Sandbox Code Playgroud)

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

cd /var/lib/mysql
mysql -uroot -p < dbdump.sql
Run Code Online (Sandbox Code Playgroud)

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