这是教你手把手部署 Docker + Django + MySQL + Nginx + Gunicorn 的傻瓜式教程,目的是让 Docker 菜鸟也能快速部署容器化的 Django 应用。mysql
须要全面深刻了解 Docker 的读者,请系统性地学习官方文档。sql
教程共四章:docker
章节之间是继承关系,建议小白读者按顺序阅读,不要着急。django
Docker 是一种基于 Linux 的容器技术,它能够将你的代码以及代码须要的环境打包到一块儿,从而组装为一个标准、轻量级、安全的隔离环境。安全
在容器技术以前,业界相似的明星产品是虚拟机:也就是在你的操做系统里面装一个软件,经过这个软件模拟出多个子系统出来。子系统之间是隔离的,互不影响。但虚拟机要模拟出整个系统,所以占用空间巨大,启动更是缓慢。服务器
而 Docker 没有虚拟机的缺点。它只须要虚拟一个小规模的环境(小到甚至只有几MB),相似于“沙箱”。微信
看本教程的读者,相信你已经看过博主的Django 搭建我的博客教程了,也在部署项目时挣扎痛苦过了。部署为何难,是由于各云服务器的环境都有所不一样,而这些微小的不一样累积多了,就致使一样的部署流程,这台机器行,到另一台机器就怎么都不行了。ide
但若是你有了 Docker 就不同了,由于 Docker 能够把系统环境和代码一同打包进去,真正作到了**"一次开发,到处运行"**,无论你的机器有多复杂的环境,容器就像一个集装箱,把无关的东西通通隔离在外面。学习
有了 Docker,更换服务器也变得很是的简单,只须要把项目代码、数据、Docker 构建文件下载到新服务器上,几条指令就搞定了。啥配置 Nginx 、配置 Gunicorn 、配置 Mysql,通通均可以无论了,由于 Docker 构建文件里早就写好了。网站
有了 Docker,你只须要购买一台服务器,就能够在上面部署多个站点,而且不用担忧它们互相影响,由于每一个容器都是隔离起来的,很是的安全。
难怪容器技术近几年如此的火热了。不学你说的过去吗?
博主会在力所能及的状况下帮助每个人,可是天天下班后须要面对读者千奇百怪的开发问题,精力实在有限。在此说明向博主提问的规范,提升双方的沟通效率:
若是你对如何将 Django 项目部署到云端彻底不了解的,强烈建议先看看传统部署流程,创建大体印象:
若是你想从新学习 Django 开发的,能够先看博主的 Django 教程:
此外,本文撰写时主要参考了如下资料:
多说无益,吸一口气,让挑战开始吧!