• 使用docker部署Django项目步骤


    docker部署Django应用

    方式一:基于python基础镜像

    # 第一种方式:基于python基础镜像来做
    cd /home
    mkdir myproject
    cd myproject
    
    docker run -di --name=myproject -p 8080:8080 -v /home/myproject:/home python:3.6
          
    #mac/linux    window:xshell拖进去
    scp django_test.zip root@101.133.225.166:/home/myproject
    # 解压:uzip (安装)yum install -y unzip zip
    
    # 进入容器I 
    docker exec -it myproject /bin/bash
    # 切到项目路径下:安装依赖
    pip install -r requirement.txt
    # pip list
    apt-get update
    apt-get vim
    # setting.py 改成下面
    ALLOWED_HOSTS = ['*']
    # 运行项目(wsgiref)
    python manage.py runserver 0.0.0.0:8080
    # 换uwsgi跑
    pip install uwsgi
    # 在项目根路径下创建一个uwsgi.ini 文件,写入
    
    [uwsgi]
    #配置和nginx连接的socket连接
    socket=0.0.0.0:8080
    #也可以使用http
    #http=0.0.0.0:8080
    #配置项目路径,项目的所在目录
    chdir=/home/django_test
    #配置wsgi接口模块文件路径
    wsgi-file=django_test/wsgi.py
    #配置启动的进程数
    processes=4
    #配置每个进程的线程数
    threads=2
    #配置启动管理主进程
    master=True
    #配置存放主进程的进程号文件
    pidfile=uwsgi.pid
    #配置dump日志记录
    daemonize=uwsgi.log
    
    
    #启动,停止,重启,查看
    uwsgi --ini uwsgi.ini #启动
    lsof -i :8001    #按照端口号查询
    ps aux | grep uwsgi   #按照程序名查询
    kill -9 13844       #杀死进程
    uwsgi --stop uwsgi.pid      #通过uwsg停止uwsgi
    uwsgi --reload uwsgi.pid  #重启
    
    # nginx转发
    
    mkdir -p nginx/conf nginx/html nginx/logs
    
    在conf目录下新建nginx.conf
    
    worker_processes  1;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
        server {
            listen       80;
            server_name  localhost;
            location / {
              #uwsgi_pass 101.133.225.166:8080;
              proxy_pass http://101.133.225.166:8080;
            }  
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    }
    
    docker run --name nginx -id -p 80:80 -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/html:/etc/nginx/html -v /home/nginx/logs:/var/log/nginx nginx
    
    # 在 python的docker中用uwsgi跑起项目来即可
    
    外部访问:http://101.133.225.166/
    

    方式二:基于dockerfile

    
    # 第二种方式:dockerfile
    
    # 写一个dockerfile即可
    
    FROM python:3.6
    MAINTAINER lqz
    WORKDIR /home
    RUN pip install django==1.11.9
    RUN pip install uwsgi
    EXPOSE 8080
    CMD ["uwsgi","--ini","/home/django_test/uwsgi.ini"] 
    
    # 这句命令,是后台执行的,不会夯住,容器里面就停了
    
    # dockerfile路径下要有一个django_test.tar
    
    #构建镜像
    docker build -t='django_1.11.9' .
    # 运行容器
    docker run -di --name=mydjango -p 8080:8080 -v /home/myproject:/home django_1.11.9
    
    
    # 以后只需要从git上拉下最新代码,重启,完事(最新代码)
    
  • 相关阅读:
    FastReport3.18使用心得
    FastReport问题整理
    SQL server 2005基于已存在的表创建分区
    SQL Server 2005对海量数据处理
    SQL SERVER2005加密解密数据
    Linux/Unix环境下的make和makefile详解 
    我想要的书
    全面提升BIND DNS服务器安全华江
    NOR和NAND Flash存储器的区别
    两个应届生找工作的好网站
  • 原文地址:https://www.cnblogs.com/ghylpb/p/12616943.html
Copyright © 2020-2023  润新知