This guide will help you setup a Docker environment on a per application basis.
Docker is great for setting up multiple isolated containers which communicate with each other on a per-project basis; removing the need complicate and pollute development environments.
By default this installation uses nginx/apache, MySQL, and php-fpm (PHP 7) images - you can however change this to your liking or extend upon it.
If you haven't already, grab Docker
Step 1 - docker-compose
Step 2 - File structure
Place your docker files inside your projects root, example structure:
-- docker -- docker-compose.yml -- Dockerfile -- site.conf -- app -- public
Step 3 - Configuration
Configure your setup appropriately - you can find a list of helpful references on the Docker website:
Step 4 - Compose / Create containers
docker-compose up from your applications docker folder
Step 5 (Optional) - Application routing
Depending on your setup, you may want to configure hostnames and appropriate routing to your newly created application via /etc/hosts
The docker containers can talk to each other via their designated names created in your docker-compose.yml file, for example the web container can talk to the db container by using db as the hostname of the MySQL connections IP address.
If you experience trouble with containers, you can remove them all and start from scratch with the following commands:
docker stop $(docker ps -a -q) docker rm $(docker ps -a -q)
Or you can re-build your containers with
docker-compose up again