When I started to learn Docker I made a mistake and instead of learning basic commands, I jumped into Docker Compose. I was so eager to use it that I missed all what's important. So I took a step back and forced myself into command line interface. After many images I created and lot of container I was experimenting with I finally got it.
Ever since I started building websites I always used some kind of AMP stack. As my skills grew my stack was growing with it. First problems occurred when we had two major versions of PHP out in the wild - 4 and 5. After a while problems were piling up as I was adding Redis, Mongo, APC, Memcached, Elasticsearch and other popular tools to my stack.