A complete example for deploying Django project with Nginx and MySQL on Docker.
Install Docker Engine from the tutorial https://docs.docker.com/engine/installation/.
Install Docker Compose from the tutorial https://docs.docker.com/compose/install/.
Get the latest project clone to your computer:
$ git clone https://github.com/huchenw/django-docker.git
Run docker-compose commands to start containers:
$ docker-compose up -d
Now you can access the application at http://localhost or http://192.168.99.100(Docker Toolbox).
To collect static files for nginx to access, just run:
$ docker-compose exec web bash
$ python manage.py collectstatic
If you want to access django admin site, please apply the django default migrations to database:
$ docker-compose exec web bash
$ python manage.py migrate
Then you need to create a superuser account:
$ python manage.py createsuperuser
$ ...
Redis is used as broker for Celery http://docs.celeryproject.org/en/latest/getting-started/brokers/redis.html.
The official tutorial http://docs.celeryproject.org/en/latest/django/ tells us how to use Celery with Django.
You can check the Celery results from logs:
$ docker-compose logs celery
Name | Image |
---|---|
Nginx | https://hub.docker.com/_/nginx/ |
MySQL | https://hub.docker.com/_/mysql/ |
Redis | https://hub.docker.com/_/redis/ |
Python | https://hub.docker.com/_/python/ |