如何使用MySQL的docker容器作为本地开发的MySQL服务器?

我是docker技术的新手。 现在,我正在使用xampp开发PHP。 最近我在本地主机上安装了docker。 我已经通过文件。 现在是时候实际执行了。 我知道如何运行docker图像。 但是我想学习使用mysql docker容器进行本地开发的最佳方式。

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

善于学习新技术。 你想用mysql容器而不是mysql的xampp堆栈。 你应该更喜欢官方形象。 您可以在hub.docker.com上searchdocker镜像。您需要从命令行运行此命令。

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

以上命令将创build名为mysql的docker容器。 您可以使用用户root和密码在命令中给出127.0.0.1:3306的访问权限。 你的mysql数据将被存储在/ my / own / datadir目录下。 所以您的数据将在重新启动后保留。

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

现在运行这个命令。

 docker exec -i -t mysql 

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

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

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

所以,我个人最喜欢的方式是使用一个名为docker-compose的工具。 它允许你定义一个简单的yaml文件,然后你可以访问一些额外的前缀为docker-compose命令。 也就是说docker-compose builddocker-compose up等,这比运行一堆单独的docker命令和记忆容器名称以及容器的连接要方便得多。

举个例子来帮助理解看这个docker-compose.yaml 。 在这个文件中,你可以方便地声明你的服务(在这种情况下, dbphpansible < – 每个将是一个单独的容器),以及它们如何相互依赖,每个容器的单个Dockerfile的pathbuild立 )和其他好东西。

您还可以指定要使用的容器的环境信息(再次,对于我链接的docker-compose,您可以看到用于指定容器所需信息的端口环境 )。 在示例docker-compose文件中,在db: service的environment:部分中,您可以看到指定这些信息是微不足道的,启动容器时, 在安装/设置mysql时将自动使用这些值 。 使用一个命令链接到其他容器的运行/configuration的mysql可以非常容易。 还有其他的环境variables可以指定容器使用(每个通常都带有几个)点击这里查看列表

看看我在这里为LAMP堆栈开发build立的docker工人。 我在我自己的github中有几个不同的,但是如果你searchgithub,你可以find一堆docker/docker组成的设置。 当我需要检查如何设置某些东西时,他们帮助我适应docker工(有时甚至可以)。

一个真正有用的起始指南可以在这里find。 Docker撰写单独使我的工作stream程更容易理解/实施多次。 这绝对值得一看。

请find这个链接 ,其中包含以下部分

卷:db_data:/ var / lib / mysql

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

php:

… depends_on:db这里PHP容器与Mysql容器链接。

请查看下面的链接详细信息。