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.
- 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.
- 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.
- MAMP has a phpMyAdmin for database access, does Docker has something like this?
Sure, a Docker container ;) search DockerHub