首页 > 网站 > 建站经验 > 正文

Django Docker容器化部署之Django-Docker本地部署

2019-11-02 14:10:27
字体:
来源:转载
供稿:网友

本章将在本地搭建一个容器化的 Django 项目,感受 Docker 的运作方式。

前期准备

开发环境

虽然有基于 Windows 的 Docker 版本,但各方面兼容做得都不太好(安装也麻烦些),因此建议读者在学习前,自行安装好 Linux 或 Mac 系统。当然你愿意折腾的话,在 Windows 上搞也行。

别担心,以后开发 Django 项目仍然可以在 Windows 下进行,仅仅是开发时不使用 Docker 而已。

软件安装

Docker:学习 Docker 当然要安装 Docker 软件了(免费的社区版),安装方法见官方文档。 Docker-compose:这是 Docker 官方推出的用于编排、运行多个容器的工具,安装方法见官方文档。本教程大部分内容都与它有关。 Python3:教程部署的是 Django 项目,那 Python3 是当然要有的了(包括 python 的包管理工具 pip)。

准备就绪后就继续下一步吧。

创建 Django 项目

打开 Linux/Mac 的终端,安装 Django 库:

$ pip install django==2.2

在一个你喜欢得位置(比如/home/)创建新的 Django 项目:

$ django-admin startproject django_app

进入项目根目录:

$ cd django_app

教程后面的内容全部都在此目录中操作了。为方便阅读,命令提示符 $ 代表目前在项目根目录 django_app/,mysql $ 则代表目前在目录 django_app/mysql/ 中,请读者操作时稍加留意当前的工作目录。

然后迁移数据:

$ python manage.py migrateOperations to perform: Apply all migrations: admin, auth, contenttypes, sessionsRunning migrations: Applying contenttypes.0001_initial... OK ... Applying sessions.0001_initial... OK

准备工作就搞定了。

用Docker构建项目

初识Docker

Docker 的整个生命周期由三部分组成:镜像(image)+ 容器(container)+ 仓库(repository)。

容器是由镜像实例化而来,这有点像面向对象的概念:镜像就是类,容器是类实例化之后的对象。

镜像是一个只读的模板,它包括了运行容器所需的数据。镜像可以包含一个完整的 Linux 操作环境,里面仅安装了 Python 或者其他用户需要的程序。

容器是由镜像创建出来的实例,类似虚拟机,里面可以运行特定的应用,并且容器与容器是相互隔离的。

仓库概念与 Git 和 Github 类似,如果你用过它们就非常容易理解。Docker 使用的默认仓库是由官方维护的 Docker hub 公共仓库,从中上传、拉取的操作类似 Git。

目前需要了解的就这么多,下面通过实践来理解。

Hello-world

为了确认 Docker 已经正确安装了,运行以下指令:

$ docker run hello-worldUnable to find image 'hello-world:latest' locally...latest: Pulling from library/hello-world1b930d010525: Pull complete ...Hello from Docker!This message shows that your installation appears to be working correctly....

一切正常的话,终端将打印出如上图所示的欢迎语句。docker run hello-world 指令的含义是:用名称为 hello-world 的镜像构建一个容器并运行。如果本地上没有这个 hello-world 的镜像, Docker 会自动从仓库搜索并下载同名的镜像。

我们可以用 docker images 查看本地已有的镜像:

$ docker imagesREPOSITORY   TAG    IMAGE ID      CREATED      SIZEhello-world   latest   fce289e99eb9    9 months ago   1.84kB
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表