使用docker部署uwsgi+mysql+nginx+redis的django项目

uwsgi的python环境容器配置如下:

首先拉取python3.6环境镜像文件,这里拉取为python3.6环境并且对于utf8编码支持,自带virtualenv虚拟环境包

# 拉取mc706/pipenv-3.6镜像
docker pull mc706/pipenv-3.6

如果拉取比较慢,可以考虑是否有更换docker源地址,之前题主有写到更换docker源地址的博客,可以移驾至:https://blog.csdn.net/weixin_42693794/article/details/84931697

守护模式运行镜像:

# 以守护模式运行镜像,设容器名为pythonenvs,并映射8001端口
docker run -di --name=pythonenvs  -p 8001:8001  mc706/pipenv-3.6

将项目拷贝到容器home目录下:

# 将项目文件拷贝至容器pythonenvs下的home目录下
docker cp  项目文件夹  pythonenvs:/home/

交互模式进入容器:

docker exec -it pythonenvs  /bin/bash

进入容器后更新apt-get源:

apt-get update

下载vim编辑器:

apt-get install  vim

新建文件夹:

mkdir ~/.pip

更换pip源地址为阿里地址:

vim ~/.pip/pip.conf

加入如下内容并保存:

[global] 
trusted-host=mirrors.aliyun.com
index-url=http://mirrors.aliyun.com/pypi/simple

安装virtualenvwrapper:

pip install virtualenvwrapper

编辑.bashrc文件:

vim ~/.bashrc

在文件最后添加如下内容:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh

让编辑后的文件生效:

source ~/.bashrc

新建虚拟环境test:

mkvirtualenv test

在确定进入到test环境下安装项目所需的包:

pip install -r requirements.txt

安装uwsgi服务:

pip install uwsgi

进入到项目下manage.py同级目录下新建uwsgi.ini文件并编辑:

vim uwsgi.ini

添加如下配置信息:

uwsgi]
# http = 172.17.0.2:8001 # uwsgi启动ip+端口(不使用nginx时)
socket = 172.17.0.2:8001 # uwsgi启动ip+端口(使用nginx时)
chdir = 项目绝对路径(到manage.py所在文件夹下)
wsgi-file = xxx/wsgi.py(相对于chdir的wsgi.py的位置)
master = true # ----》主进程
processes=10  # ---->最大数量的工作进程
pidfile=uwsgi.pid
daemonize=uwsgi.log # 存放uwsgi日志
virtualenv = 虚拟环境路径(/home/.virtualenvs/test)

以上配置文件请根据自己的实际情况修改,题主已给出提示信息

启动uwsgi:

uwsgi --ini uwsgi.ini

可以查看uwsgi.log判断服务是否启动成功

最后可以通过宿主机浏览器,通过127.0.0.1:8001来访问测试(如果你用的是restframework框架的话)

------------------------------------------------------------------------分割线----------------------------------------------------------------------------------

以下是关于nginx的docker配置如下:

拉取ngixn镜像:

docker pull nginx

以守护模式运行nginx镜像:

docker run -di --name=nginx_test nginx

新建文件,用于存放nginx配置文件:

mkdir /etc/project_nginx

将nginx配置文件拷贝至本地:

docker cp nginx_test:/etc/nginx  /etc/project_nginx/

关闭并删除nginx容器:

# 关闭nginx容器
docker stop nginx_test 
# 删除nginx容器
docker rm nginx_test

重新建立nginx容器,并将配置文件挂载至nginx容器内:

docker run -di --name=nginx -p 80:80 -p 8000:8000 -v /etc/project_nginx/nginx:/etc/nginx nginx

将静态文件拷贝至容器内:

docker cp  静态文件(如static文件夹,文件夹下面第一级必须有index.html文件)  nginx:/usr/share/nginx/html/

修改宿主机本地nginx配置文件:

vim /etc/project_nginx/nginx/conf.d/default.conf

修改如下:

使用docker部署uwsgi+mysql+nginx+redis的django项目_第1张图片

修改另一个nginx配置文件:

vim /etc/project_nginx/nginx/nginx.conf

添加如下信息:

使用docker部署uwsgi+mysql+nginx+redis的django项目_第2张图片

配置完成后重启nginx容器:

docker restart nginx

以上nginx配置完成~~~~~~~~~~~

----------------------------------------------------------------------分割线------------------------------------------------------------------------------------------

以下是关于mysql的docker配置如下:

mysql配置很简单如下:

首先拉取镜像:

docker pull mysql

以守护模式启动mysql,并为root用户设置密码,映射3306端口(请确保3306端口未被占用,最好本地未安装mysql以免冲突)

docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root密码 mysql

进入mysql容器:

docker exec -it mysql /bin/bash

进入mysql数据库,并创建项目所需的表,到此mysql配置完成

---------------------------------------------------------------------分割线-------------------------------------------------------------------------------------------

以下是关于redis的docker配置如下:

拉取redis镜像:

docker pull redis

以守护模式启动redis,并映射6379端口(请确保6379端口未被占用,最好本地未安装redis以免冲突)

docker run -di --name=redis -p 6379:6379 redis

redis配置完成

~~~~~~~修改相应的连接redis数据库,mysql数据库的ip地址,重启uwsgi部署完成

~此时可以通过宿主机http://宿主机ip访问你所部署的网站了

~~~~~~~~原创制作,转载请注明出处,谢谢^o^

觉得对你有帮助就支持一下作者吧,谢谢~

使用docker部署uwsgi+mysql+nginx+redis的django项目_第3张图片

 

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