docker+django 运行环境部署

本篇描述了制作一个docker+django的镜像。

其中uwsgi,supervisor 这两工具是为了后续采用nginx 服务器所安装的,本篇测试不需要这些。只是用了django的自带测试服务器测试。

1,首先下载 docker +ubuntu 基础镜像

      docker pull ubuntu

      下载完毕后 

      docker images

       查看结果:        

       REPOSITORY TAG IMAGE ID CREATED SIZE
       ubuntu latest 4c108a37151f 33 hours ago 64.2MB

2,运行容器

      docker run -it ubuntu  bin/bash

      进入命令行模式:

      查看ubuntu 版本,cat  /etc/issue  ,我当前下载版本 Ubuntu 18.04.2 LTS \n \l

3,安装python环境

      apt-get install python3

      python=python3

      运行 python控制台:      

      Python 3.6.8 (default, Jan 14 2019, 11:02:34)
      [GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
      Type "help", "copyright", "credits" or "license" for more information.

      默认安装了3.6.8 版本,ctrl+D 退出python 控制台

4,安装pip3

      由于上面安装的是python3 ,所以安装pip3工具

      apt install python3-pip

5,安装djgano

      pip3 install Django

      安装完毕后查看django版本:

      python:

      import django      

      django.get_version()
       '2.2.2'

      安装完毕django 2.2.2 版本

6  制作镜像

    docker commit -m="python3+django2" -a="zhj" 9af3cf56dbec  ubuntu:django

    

7, 安装Django和mysql连接的驱动 pymysql  

 git clone https://github.com/PyMySQL/PyMySQL
 cd PyMySQL 
 python3 setup.py install
由于ubuntu:django镜像上没有git命令,所以要么安装git,要么采用另外一种方式解决,我采用了第二种。
在宿主机上下载:
 git clone https://github.com/PyMySQL/PyMySQL
放在目录
/home/andrew下

然后运行容器:
docker run -it -v /home/andrew:/home/andrew django bin/bash

-v /home/andrew:/home/andrew 表示将容器中/home/andrew目录挂载到宿主机的/home/andrew上。
现在浏览容器的
/home/andrew,
 cd PyMySQL 
 python3 setup.py install
完成pymysql的安装

8,安装 uwsgi
pip3 install uwsgi

9,安装supervisor

       一个专门用来管理进程的工具,我们用它来管理 uwsgi 进程.

       pip3 install supervisor

   10, 安装vim

        apt-get install vim

   11, 运行一个django工程

         运行我自己建的一个django工程

        python3 manage.py runserver 0.0.0.0:8000,

        报错如下:         

        /usr/local/lib/python3.6/dist-packages/django/db/backends/mysql/base.py", line 36, in <module>
        raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)

        修改如下:

        把文件base.py中的这些内容注释掉:        

       #if version < (1, 3, 13):
       # raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)

 

   12,测试

        docker commit -m="python3+django2" -a="zhj" 8af3cf56dbdc  ubuntu:django1  (制作镜像的步骤根据自己的安装情况而定,上面步骤中可出现多次制作,自己决定啦)

        制作一个新镜像

        运行该镜像

        docker run -p 8083:8000 -it -v /home/andrew/django/test/project:/home/andrew ubuntu:django1 bin/bash

        运行django        

        python3 manage.py runserver 0.0.0.0:8000

        在浏览器上访问  192.168.21.59:8083/admin,出现django登录页面。测试成功。(192.168.21.59,我的主机名)

   13,后续,下一篇该尝试nginx部署运行django 了

        

       

      

     

 

posted on 2019-06-22 10:24  幻化清风  阅读(6299)  评论(3编辑  收藏  举报