Web development transition from MAMP to Docker Web development transition from MAMP to Docker php php

Web development transition from MAMP to Docker


You can now use docker-compose and a docker-compose.yml file to accomplish the same thing as fig.

Finding containers for each service and linking them together isn't the easiest thing. The docker-compose file from The damp github project (pasted below for posterity) is a good start for how to get the apache, php, and mysql services all running with a docker-compose -f docker-compose.yml up command.

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]

Once you do that _and put an entry for damp.dev 127.0.0.1 in your hosts file, anything you mount in ~/damp/damp (per that second to last line) will be put in the htdocs of the docker container and served up on damp.dev/[whatever].

damp is just the first example I found poking around on how to replicate MAMP with docker. The most important thing to note is that you can use docker-compose instead of fig. Compose is based directly on the Fig codebase and is backwards-compatible with Fig applications.


  1. How can I link these three images together to make them work? Or How should I run them simultaneously?

Use fig to define and link containers.

  1. Where should I put the /htdocs or how can I access it?

This depends solely on your container configuration. You may try PHP with Apache from DockerHub. See the docs for an explanation where to put your files.

  1. MAMP has a phpMyAdmin for database access, does Docker has something like this?

Sure, a Docker container ;) search DockerHub