从MAMP到Docker的Web开发过渡

我是Docker的新手,我很难将其核心技术应用到我目前的Web开发中。 使用MAMP,你只需要下载应用程序,把你的PHP / HTML文件放在/ htdocs,启动服务器,然后去http:// localhost:8888 /看到你的web应用程序。 现在,使用docker工具,我想知道我怎么能做到这一点。 到目前为止我所做的是从Docker Hub中提取http,php和mysql镜像。

  1. 我怎样才能把这三个图像连接在一起,使它们工作? 或者我应该如何同时运行它们?
  2. 我应该把/ htdocs放在哪里,或者我怎样才能访问它?
  3. MAMP有一个用于数据库访问的phpMyAdmin,Docker有这样的东西吗?

我正在使用boot2docker v1.4.1和VirtualBox 4.3.20在Mac OS X Yosemite(10.10.1)上工作。

  1. 我怎样才能把这三个图像连接在一起,使它们工作? 或者我应该如何同时运行它们?

使用fig来定义和链接容器。

  1. 我应该把/ htdocs放在哪里,或者我怎样才能访问它?

这完全取决于你的容器configuration。 您可以使用 DockerHub中的Apache来尝试PHP 。 有关解释放置文件的位置,请参阅文档。

  1. MAMP有一个用于数据库访问的phpMyAdmin,Docker有这样的东西吗?

当然,一个Docker容器;) searchDockerHub

你现在可以使用docker docker-compose和一个docker-compose.yml文件来完成与图1相同的function。

find每个服务的容器并将它们连接在一起并不是最容易的事情。 来自潮湿的github项目的docker-compose文件(粘贴在后面的后面)对于如何使用docker-compose -f docker-compose.yml up命令来运行所有的apache,php和mysql服务是一个很好的开始。

proxy: image: jwilder/nginx-proxy ports: ['80:80'] volumes: ['/var/run/docker.sock:/tmp/docker.sock:ro'] environment: [DEFAULT_HOST=damp.dev] database: image: 'mysql:5.7' ports: ['3306:3306'] environment: [MYSQL_ROOT_PASSWORD=password] phpmyadmin: image: corbinu/docker-phpmyadmin links: ['database:mysql'] environment: [MYSQL_USERNAME=root, MYSQL_ROOT_PASSWORD=password, VIRTUAL_HOST=phpmyadmin.damp.dev] damp: image: httpd volumes: ['~/damp/damp:/usr/local/apache2/htdocs'] environment: [VIRTUAL_HOST=damp.dev]

一旦你这样做了damp.dev 127.0.0.1在你的主机文件中的任何东西,你安装在〜/潮湿/潮湿(每秒到最后一行)将被放入docker集装箱的htdocs和服务在damp.dev/ [无论]。

潮湿只是我发现如何复制MAMP与docker的第一个例子。 最重要的是要注意的是,你可以使用docker-compose代替fig 。 Compose直接基于Fig代码库,并且与Fig应用程序向后兼容。