我是 Docker 技术的新手。现在我仍然使用 xampp 来开发 PHP。最近,我在本地主机上安装了 docker。我已经查看了文档。现在是实际实施的时候了。我知道如何运行 docker 镜像。但我想学习使用 mysql docker 容器进行本地开发的最佳方法。
我打算使用mysql docker容器而不是xampp的mysql。寻求最佳设置帮助。
学习新技术是有好处的。您想要使用 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。当询问时输入密码。
因此,我个人最喜欢的方法是使用名为 docker-compose 的工具。它允许您定义一个简单的 yaml 文件,然后您可以访问一些前缀为
docker-compose
的额外命令。 IE。 docker-compose build
、docker-compose up
等,这比运行一堆单独的 docker 命令并记住用于链接容器等的容器名称要方便得多。
举一个例子来帮助理解,请参阅这个docker-compose.yaml。在此文件中,您可以方便地声明您的服务(在本例中为 db、php 和 ansible <- 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,您可以看到 ports、volumes 和 environment 用于指定容器所需的信息)。在示例 docker-compose 文件中,在
environment:
服务的 db:
部分中,您可以看到指定此信息很简单,启动容器后,安装/设置时将自动使用这些值启动mysql。使用“一个命令”链接到其他容器的正在运行/配置的 mysql 可以“真正”轻松地实现。 还有您还可以为容器指定要使用的其他环境变量(每个环境变量通常带有多个)单击此处查看列表
查看我为 LAMP 堆栈开发所做的 docker 设置这里。我自己的 github 中有几个不同的,但是如果你搜索 github,你可以找到一堆 docker/docker-compose 设置。当我需要回顾如何设置某些东西时,他们帮助我熟悉了 docker(有时仍然如此)。
可以在请找到这个
Mysql 将安装在单独的容器中,但其 /var/lib/mysql
路径映射到文件夹的 db_data。所以所有数据库都存储在 db_data 文件夹中。php:
... 依赖于取决于: D b 这里 PHP 容器与 Mysql 容器链接。
请查看下面的链接了解详细信息。