Web开发从MAMP过渡到Docker

xan*_*pez 8 php mysql web docker boot2docker

我是Docker的新手,我很难将其核心技术应用到我目前的Web开发中.使用MAMP,您只需要下载应用程序,将您的PHP/HTML文件放在/ htdocs上,启动服务器,然后转到http:// localhost:8888 /以查看您的webapp.现在,使用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).

小智 7

您现在可以使用docker-composedocker-compose.yml 文件来完成与图相同的事情。

为每个服务查找容器并将它们链接在一起并不是最简单的事情。来自Thedam github 项目的 docker-compose 文件(粘贴在下面以供后人使用)是如何让 apache、php 和 mysql 服务全部通过docker-compose -f docker-compose.yml up命令运行的良好开端。

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]
Run Code Online (Sandbox Code Playgroud)

一旦你这样做了_并damp.dev 127.0.0.1在你的主机文件中放置了一个条目,你在 ~/damp/damp 中挂载的任何东西(从倒数第二行)都将被放入 docker 容器的 htdocs 中并提供给damp.dev/[任何]。

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


sch*_*unk 0

  1. 我怎样才能将这三个图像链接在一起以使它们发挥作用?或者我应该如何同时运行它们?

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

  1. 我应该将 /htdocs 放在哪里或者如何访问它?

这仅取决于您的容器配置。您可以尝试使用来自 DockerHub 的Apache 的 PHP。请参阅文档以了解文件放置位置的说明。

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

当然,一个 Docker 容器;)搜索 DockerHub