这是教你手把手部署 Docker + Django + MySQL + Nginx + Gunicorn 的傻瓜式教程,目的是让 Docker 菜鸟也能快速部署容器化的 Django 应用。
需要全面深入了解 Docker 的读者,请系统性地学习官方文档。
教程共四章:
- 前言
- Docker + Django 本地部署
- Docker + Django + MySQL 本地部署
- Docker + Django + MySQL + Nginx + Gunicorn 本地 + 云端部署
章节之间是继承关系,建议小白读者按顺序阅读,不要着急。
教程特色
- 零基础、免费、中文、完整项目代码
- 基于最新的 Docker 19.03.1、Python 3.7、Django 2.2
- 博主热情的技术支持
教程适宜人群
- 完全没接触过 Docker,但却想迅速搭建容器化项目的
- 接触过 Docker,但是却不清楚如何用 Docker 搭建 Django 项目的
什么是Docker
Docker 是一种基于 Linux 的容器技术,它可以将你的代码以及代码需要的环境打包到一起,从而组装为一个标准、轻量级、安全的隔离环境。
在容器技术之前,业界类似的明星产品是虚拟机:也就是在你的操作系统里面装一个软件,通过这个软件模拟出多个子系统出来。子系统之间是隔离的,互不影响。但虚拟机要模拟出整个系统,因此占用空间巨大,启动更是缓慢。
而 Docker 没有虚拟机的缺点。它只需要虚拟一个小规模的环境(小到甚至只有几MB),类似于“沙箱”。
为什么要学Docker
看本教程的读者,相信你已经看过博主的Django 搭建个人博客教程了,也在部署项目时挣扎痛苦过了。部署为什么难,是因为各云服务器的环境都有所不同,而这些微小的不同累积多了,就导致同样的部署流程,这台机器行,到另外一台机器就怎么都不行了。
但如果你有了 Docker 就不一样了,因为 Docker 可以把系统环境和代码一同打包进去,真正做到了"一次开发,处处运行",不管你的机器有多复杂的环境,容器就像一个集装箱,把无关的东西统统隔离在外面。
有了 Docker,更换服务器也变得非常的简单,只需要把项目代码、数据、Docker 构建文件下载到新服务器上,几条指令就搞定了。啥配置 Nginx 、配置 Gunicorn 、配置 Mysql,统统都可以不管了,因为 Docker 构建文件里早就写好了。
有了 Docker,你只需要购买一台服务器,就可以在上面部署多个站点,并且不用担心它们互相影响,因为每个容器都是隔离起来的,非常的安全。
难怪容器技术近几年如此的火热了。不学你说的过去吗?
提问须知
博主会在力所能及的情况下帮助每一个人,但是每天下班后需要面对读者千奇百怪的开发问题,精力实在有限。在此说明向博主提问的规范,提高双方的沟通效率:
- 能够在博客评论区说清楚的问题,请尽量通过评论提问。这样做的好处是其他读者也都能够看到,方便大家一起讨论、解决类似的问题。评论时请精炼语言并稍加排版,帮助博主节省一点点精力。
- 喜欢寻找学伴互相交流学习的,可以加博主的Django交流QQ群:107143175,或者博主微信:dusai0523。一个人学习难免走弯路,有热心人帮忙就不再寂寞了。
- 如果你的问题必须结合图片说明、或者特别难描述清楚的,可以通过Email提问。请详细描述你的意图、遇到的问题,然后将所有相关的代码、报错、配置等信息展示给我。博主不是技术大牛,没办法仅凭一句话或者一张图来帮你排查问题。
- 如果以上方法均无效,请先与博主沟通,将项目打包发送给博主,运行你的代码来查找问题。请注意这是最后才考虑的提问方式,虽然博主很乐于和读者交流技术,但很多时候没有精力逐个排查网友的代码。
资源列表
如果你对如何将 Django 项目部署到云端完全不了解的,强烈建议先看看传统部署流程,建立大致印象:
如果你想重新学习 Django 开发的,可以先看博主的 Django 教程:
此外,本文撰写时主要参考了以下资料:
挑战开始
多说无益,吸一口气,让挑战开始吧!
- 有疑问请在杜赛的个人网站留言,我会尽快回复。
- 或Email私信我:dusaiphoto@foxmail.com
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。