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

问题描述 投票:0回答:3

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

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

mysql docker database-migration
3个回答
10
投票

学习新技术是有好处的。您想要使用 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

上面的命令将创建名为 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。当询问时输入密码。


7
投票

因此,我个人最喜欢的方法是使用名为 docker-compose 的工具。它允许您定义一个简单的 yaml 文件,然后您可以访问一些前缀为

docker-compose
的额外命令。 IE。
docker-compose build
docker-compose up
等,这比运行一堆单独的 docker 命令并记住用于链接容器等的容器名称要方便得多。

举一个例子来帮助理解,请参阅这个docker-compose.yaml。在此文件中,您可以方便地声明您的服务(在本例中为 dbphpansible <- each of which will be a separate container), and how they depend on each other, the paths to the individual Dockerfile for each container (build)以及其他好东西。

您还可以指定容器使用的环境信息(同样,对于我链接到的 docker-compose,您可以看到 portsvolumesenvironment 用于指定容器所需的信息)。在示例 docker-compose 文件中,在

environment:
服务的
db:
部分中,您可以看到指定此信息很简单,启动容器后,安装/设置时将自动使用这些值启动mysql。使用“一个命令”链接到其他容器的正在运行/配置的 mysql 可以“真正”轻松地实现。 还有您还可以为容器指定要使用的其他环境变量(每个环境变量通常带有多个)单击此处查看列表 查看我为 LAMP 堆栈开发所做的 docker 设置这里。我自己的 github 中有几个不同的,但是如果你搜索 github,你可以找到一堆 docker/docker-compose 设置。当我需要回顾如何设置某些东西时,他们帮助我熟悉了 docker(有时仍然如此)。

可以在

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

请找到这个

链接,其中包含以下部分


1
投票

Mysql 将安装在单独的容器中,但其 /var/lib/mysql

路径映射到文件夹的 db_data。所以所有数据库都存储在 db_data 文件夹中。

php:

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

请查看下面的
链接

了解详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.