我是docker技术的新手。现在我仍在使用xampp来开发PHP。最近,我在我的localhost上安装了docker。我已经完成了文档。现在是实施的时候了。我知道如何运行docker图像。但我想学习使用mysql docker容器进行本地开发的最佳方法。
我打算使用mysql docker容器而不是xampp的mysql。寻求最佳设置的帮助。
答案 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 build
,docker-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)