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 了

        

       

      

     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM