title: What's the difference between Docker Compose vs. Dockerfile
body: <p>I have been reading up and learning about <a href="https://docs.docker.com/" rel="noreferrer">Docker</a>, and am trying to correctly choose the Django setup to use. So far there is either:</p>
  <p><a href="https://docs.docker.com/compose/" rel="noreferrer">Docker Compose</a> or <a href="https://docs.docker.com/engine/reference/builder/" rel="noreferrer">Dockerfile</a></p>
  <p>I understand that <em>Dockerfiles</em> are used in <em>Docker Compose</em>, but I am not sure if it is good practice to put everything in one large Dockerfile with multiple <code>FROM</code> commands for the different images?</p>
  <p>I want to use several different images that include:</p>
  <pre><code>uwsgi
  nginx
  postgres
  redis
  rabbitmq
  celery with cron
  </code></pre>
  <p>Please advise on what are best practices in setting up this type of environment using <em>Docker</em>.</p>
  <p>If it helps, I am on a Mac, so using <a href="https://github.com/boot2docker" rel="noreferrer">boot2docker</a>.</p>
  <p>Some issues I've had:</p>
  <ol>
  <li>Docker Compose is not compatible with Python3</li>
  <li>I want to containerize my project, so if one large Dockerfile
  is not ideal, then I feel I'd need to break it up using Docker Compose</li>
  <li>I am OK to make the project Py2 &amp; Py3 compatible, so am leaning towards django-compose</li>
  </ol>