文档章节

基于Docker搭建Django开发环境

zerobyte
 zerobyte
发布于 2017/04/08 15:06
字数 1219
阅读 105
收藏 0
点赞 0
评论 0

本文主要是作为官方Quickstart: Compose and Django的导读,如果你当下还没了解过Docker,但想知道如何利用Docker来管理自己本地的开发环境,并统一开发和测试的环境,那你可以参考以下内容。

###需求: 使用Docker搭建Django开发环境,即本地只需要有python代码即可。

###预备知识: Docker作为容器,和传统虚拟机是不一样的,如下图所示,它是基于Docker Engine的一个容器,且在这一层次上是相互隔离的,而传统虚拟化则是要虚拟化整个系统,因此理论上Docker容器可以更有效的利用资源,你可以很容易在本地环境搭建多服务的复杂系统环境。本篇以一台web服务器及一台数据库服务器为例,当然也可以搭建更复杂的,比如加入一台redis机器等等。 Docker结构 更多Docker介绍可以看开源版本的《Docker 从入门到实践》, 内容可能已经有点老,但是基本上还是作为参考。 更多,等新,等详细的解释看官方介绍What is a Cantainer

容器是基于一个镜像(image)建立的,比如本地有一个ubuntu的镜像,我们可以基于该镜像去新建多个容器实例,而它们之间可以做到互联,与本地机器的文件共享等。从而可以达到前文提到的,快速在本地搭建一个多服务器的复杂环境。 用户可以很方便地对容器进行启动、停止、删除等操作。一个基本的容器启动例子如下,它在启动一个容器后,打印一条Hello world

sudo docker run ubuntu:14.04 /bin/echo 'Hello world'

镜像被**仓库**统一管理,Docker官方有自己的仓库Docker Hub,国内可以使用阿里云的镜像仓库,我用的是阿里的,需要在阿里后台生成自己的私有地址,然后在Docker中配置。从镜像仓库获取镜像到本地后,就可以基于镜像新建容器使用了。 当然也可以搭建自己的私有仓库,在团队或公司内部使用。

镜像定制,当仓库中的官方镜像无法满足需求时,就需要自定义镜像,所有的自定义镜像都可以上传到仓库中,共享给其他用户。Docker镜像的定制主要通过Dockerfile指令文件实现,在指令文件中实现自己的需求即可,比如使用COPY命令将本机文件复制到容器中等。

Docker Compose,安装最新的Docker,默认已经包含这个工具,主要用于定义及启动多容器的场景(当前例子基于此工具),它需要一个docker-compose.yml文件来配置需要启动的容器及相关配置,然后就可以用下述语句新建及启动配置文件中的多容器

docker-compose up

docker-compose.yml实例:

version: '2'
 services:
   db:  //数据库容器
     image: postgres
   web:  //web服务器容器
     build: .
     command: python manage.py runserver 0.0.0.0:8000
     volumes:   //挂载本地机器文件夹
       - .:/code
     ports:
       - "8000:8000"
     depends_on:
       - db

###搭建Django开发环境: Step 1: Define the project components

这个步骤主要是定义project的内容,这里的“project”指我们要搭建的基于Docker的Django开发环境,具体会包含Docker容器配置文件Dockerfile,Django环境需要的requirements.txt配置,docker-compose.yml配置

Dockerfile 实例:

 FROM python:2.7   注:基础镜像
 ENV PYTHONUNBUFFERED 1
 RUN mkdir /code
 WORKDIR /code     注:切换工作上下文

 ADD requirements.txt /code/    

 RUN pip install -r requirements.txt 注:安装python依赖

 ADD . /code/

Step 2:Create a Django project

官方例子是用docker-compose命令运行web服务器(docker-compose.yml配置了web和db两个容器),然后调用django-admn新建Django项目,由于挂在了本地目录到容器内部,因此当前命令生成的django项目文件能在本地机器目录直接访问。

 docker-compose run web django-admin.py startproject composeexample .

注意,此时的web容器已经包含django环境了,因为在web容器的Dockerfile文件配置了python环境搭建的命令,如下所示:

RUN pip install -r requirements.txt

对于实际工作项目,我们只需在对应的本地机器目录(即运行docker-compose命令的上下文目录)准备好项目代码即可

 $ ls -l
 drwxr-xr-x 2 root   root   composeexample   注:该项目文件可以是实际工作代码文件夹
 -rw-rw-r-- 1 user   user   docker-compose.yml
 -rw-rw-r-- 1 user   user   Dockerfile
 -rwxr-xr-x 1 root   root   manage.py
 -rw-rw-r-- 1 user   user   requirements.txt

Step 3:Connect the database

这里主要就是设置Django框架下的settings.py文件,注意HOST名字使用

DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.postgresql',
         'NAME': 'postgres',
         'USER': 'postgres',
         'HOST': 'db',  //另一个容器的名字
         'PORT': 5432,
     }
 }

最后就是再次使用docker-compose新建并启动多个容器

$ docker-compose up

Django页面

© 著作权归作者所有

共有 人打赏支持
zerobyte
粉丝 0
博文 19
码字总数 7224
作品 0
个人站长
Docker18.02 + Django2.0 + MySQL + phpmyadmin

利用Docker创建 Django 2.0 + MySQL + phpmyadmin 的开发环境 新建一个文件夹 如 django-web02 Dockerfile requirements.txt docker-compose.yml 目录结构 docker-compose build docker-comp......

2010jing ⋅ 03/23 ⋅ 0

Docker 搭建前端开发环境--Docker_FrontEnd

项目介绍: 一键安装基于Docker搭建的前端开发环境,傻瓜式配置与管理,小团队接触Docker的第一块敲门砖 心路历程: http://wurang.net/dockerfrontend/ 基本功能: 基于Docker Toolbox,在的...

sonicrang ⋅ 2017/08/09 ⋅ 0

使用docker部署Django程序遇到了问题,紧急求助!!!

我使用conda管理python开发环境 按照这里的教程:https://www.qcloud.com/commun... 各种错误,请问用conda管理的Django程序怎么部署到docker的? 详细信息如下:分为三个镜像,mysql,nginx...

芝麻糖人 ⋅ 2017/05/09 ⋅ 0

如何在Mopaas上,创建部署WSGI类型的(Django, Tornado, Flask)Python应用 ?

第一部分:安装必要工具。 1.因为这是部署Python开发环境,所以安装pip可以简化一些软件的安装过程。(PIP对应Lua的luarocks) sudo apt-get install python-pip安装三个Python框架 sudo pip...

糖果L5Q ⋅ 2015/09/09 ⋅ 2

使用Docker高效搭建开发环境

Docker作为轻量级的基于容器的解决方案,它对系统侵入性低,容易移植,天生就适合做复杂业务部署和开发环境搭建,今天给大家带来的是奇虎360的开发是如何使用Docker高效搭建开发环境的。 作为...

Docker ⋅ 04/30 ⋅ 0

个人博客系统--newBlog

newBlog 是一个基于 Django 框架开发的个人博客系统,开发环境 Python 2.7 Django 1.5.5 Mysql 5.5 Boostrap 功能 1.写博(基于Markdown编辑器) 2.上传博客(将.md文件上传后自动生成博客,如...

tube ⋅ 2014/12/18 ⋅ 0

[转]利用Docker构建开发环境

了解什么是Docker,怎么基于Docker搭建自己的虚拟开发环境 http://tech.uc.cn/?p=2726

老梁2008 ⋅ 2015/11/04 ⋅ 0

为什么用Docker,Docker究竟有什么用呢

近年来,Docker越来越火爆,一大堆新概念,轻量级虚拟机,集装箱等概念,眼光缭乱。 慢慢也尝试用vagrant+docker搭建开发环境 和 服务器也用docker搭建测试环境,再逐步正式环境也用上docke...

小和 ⋅ 2016/11/03 ⋅ 2

docker-web搭建(mysql,redis,django,nginx)

web搭建 登录docker hub,申请一个仓库 本次试验环境:阿里云服务器 Centos7.2 x86_64 所需知识:python,redis,mysql,django,nginx,linux操作知识 预备工作 安装docker docker安装成功之后,...

大巴0007 ⋅ 01/10 ⋅ 0

在Mopaas上部署WSGI类型的(Django, Tornado, Flask)Python应用

第一部分:安装必要工具。 1.因为这是部署Python开发环境,所以安装pip可以简化一些软件的安装过程。(PIP对应Lua的luarocks) sudo apt-get install python-pip 安装三个Python框架 sudo p...

糖果L5Q ⋅ 2015/09/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

IDEA创建SpringMVC+Mybatis+Maven项目

视频如下(加载有点慢请见谅,服务器不太好): 视频

影狼 ⋅ 刚刚 ⋅ 0

前阿里P8架构师:精准定制Java架构师学习计划!

可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。 有不少朋友问,除了掌握J...

java高级架构牛人 ⋅ 3分钟前 ⋅ 0

zookeper学习

https://blog.csdn.net/u012152619/article/category/6470028

~少司命~ ⋅ 4分钟前 ⋅ 0

Spring MVC ,JSON,JQuery,不懂JQuery,跳过了

/spring-mvc-study/src/main/webapp/course_json.jsp <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD ......

颖伙虫 ⋅ 4分钟前 ⋅ 0

2018上海云栖大会workshop-日志数据采集与分析对接

摘要: 日志数据采集与分析对接 课程描述 通过日志服务采集用户、数据库、业务等访问数据。演示对于业务日志分析与处理,程序日志查询与监控,打通日志与数据仓库对接案例。 日志种类 网站访...

阿里云云栖社区 ⋅ 5分钟前 ⋅ 0

mahout demo

package com.datamine.CollaborativeFiltering.mysql; import org.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood; import org.apache.mahout.cf.taste.impl.recommend......

xiaomin0322 ⋅ 7分钟前 ⋅ 0

red hat openstack 12配置要求

安装 openstack 之前,一般要规划整个系统中,到底要多少台机器来参与openstack, 根据rhosp12的官方文档: 最低要求是3台物理机,1台作为director,一台作为 controller ,一台作为computer....

tututu_jiang ⋅ 8分钟前 ⋅ 0

Rocket-Chip在GitHub上的各个源码

在github上通过搜索Rocket-chip可以得到36个结果:其中 https://github.com/freechipsproject/rocket-chip https://github.com/ucb-bar/riscv-boom https://github.com/ucb-bar/fpga-zynq (......

whoisliang ⋅ 13分钟前 ⋅ 0

【HAVENT原创】CentOS 6.5 下 Nginx 的安装与配置

nginx是轻量级的Web服务器、反向代理服务器及邮件服务器,具有占用内存少,并发能力强的优点,已被广泛应用。本文介绍目前最新版本 1.12.2 的安装。 各版本nginx下载地址:http://nginx.org/...

HAVENT ⋅ 19分钟前 ⋅ 0

查看linux系统重启之前的log -- last_kmsg

当 Linux Kernel 出现 BUG 的时候,后走入 panic flow,这个时候由于 Kernel 出现了严重的问题,adbd 也无法响应 adb 连接请求,这个时候想透过读取 Kernel Log Buffer 来看 Kernel Log 是不...

zyzzu ⋅ 20分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部