Web 开发从 MAMP 过渡到 Docker
Web development transition from MAMP to Docker
我是 Docker 的新手,我很难将其核心技术应用到我目前的 Web 开发中。使用 MAMP,您只需下载该应用程序,将您的 PHP/HTML 文件放在 /htdocs 上,启动服务器,然后转到 http://localhost:8888/ 查看您的 Web 应用程序。现在,使用 docker,我想知道我怎样才能做同样的事情。到目前为止,我所做的是从 Docker Hub 中提取 http、php 和 mysql 图像。
- 我怎样才能 link 这三个图像一起工作?或者我应该如何同时 运行 它们?
- 我应该把 /htdocs 放在哪里或者如何访问它?
- MAMP 有一个 phpMyAdmin 用于数据库访问,Docker 有这样的东西吗?
我正在使用 boot2docker v1.4.1 和 VirtualBox 4.3.20 开发 Mac OS X Yosemite (10.10.1)。
- How can I link these three images together to make them work? Or How should I run them simultaneously?
使用 fig 定义和 link 容器。
- Where should I put the /htdocs or how can I access it?
这完全取决于您的容器配置。您可以尝试 DockerHub 中的 PHP with Apache。有关文件放置位置的说明,请参阅文档。
- MAMP has a phpMyAdmin for database access, does Docker has something like this?
当然,一个 Docker 容器 ;) search DockerHub
您现在可以使用 docker-compose
和一个 docker-compose.yml 文件来完成与图相同的事情。
为每个服务找到容器并将它们链接在一起并不是一件容易的事情。来自 The damp github project 的 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]
一旦你这样做_并在你的主机文件中为 damp.dev 127.0.0.1
放置一个条目,你在 ~/damp/damp 中挂载的任何内容(从倒数第二行开始)将被放入docker 容器并在 damp.dev/[whatever] 上供应。
damp 只是我在探索如何使用 docker 复制 MAMP 时发现的第一个示例。最需要注意的是,您可以使用 docker-compose
而不是 fig
。 Compose is based directly on the Fig codebase and is backwards-compatible with Fig applications.
我是 Docker 的新手,我很难将其核心技术应用到我目前的 Web 开发中。使用 MAMP,您只需下载该应用程序,将您的 PHP/HTML 文件放在 /htdocs 上,启动服务器,然后转到 http://localhost:8888/ 查看您的 Web 应用程序。现在,使用 docker,我想知道我怎样才能做同样的事情。到目前为止,我所做的是从 Docker Hub 中提取 http、php 和 mysql 图像。
- 我怎样才能 link 这三个图像一起工作?或者我应该如何同时 运行 它们?
- 我应该把 /htdocs 放在哪里或者如何访问它?
- MAMP 有一个 phpMyAdmin 用于数据库访问,Docker 有这样的东西吗?
我正在使用 boot2docker v1.4.1 和 VirtualBox 4.3.20 开发 Mac OS X Yosemite (10.10.1)。
- How can I link these three images together to make them work? Or How should I run them simultaneously?
使用 fig 定义和 link 容器。
- Where should I put the /htdocs or how can I access it?
这完全取决于您的容器配置。您可以尝试 DockerHub 中的 PHP with Apache。有关文件放置位置的说明,请参阅文档。
- MAMP has a phpMyAdmin for database access, does Docker has something like this?
当然,一个 Docker 容器 ;) search DockerHub
您现在可以使用 docker-compose
和一个 docker-compose.yml 文件来完成与图相同的事情。
为每个服务找到容器并将它们链接在一起并不是一件容易的事情。来自 The damp github project 的 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]
一旦你这样做_并在你的主机文件中为 damp.dev 127.0.0.1
放置一个条目,你在 ~/damp/damp 中挂载的任何内容(从倒数第二行开始)将被放入docker 容器并在 damp.dev/[whatever] 上供应。
damp 只是我在探索如何使用 docker 复制 MAMP 时发现的第一个示例。最需要注意的是,您可以使用 docker-compose
而不是 fig
。 Compose is based directly on the Fig codebase and is backwards-compatible with Fig applications.