python django部署docker_使用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 [email protected]:/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上拉下最新代码,重启,完事(最新代码)

你可能感兴趣的:(python,django部署docker)