Docker 部署django项目_01

提示:Docker 部署django项目(前后端分离,这是后端)


创建第一个项目

django-admin startproject DjangoPractice

创建 APP

python manage.py startapp user

配置setting,添加注册app,此处略…

创建后台

python manage.py createsuperuser

迁移数据库表

python manage.py makemigrations
python manage.py migrate

Sh创建docker数据库,注意这里的目录结构

在这里插入图片描述

my.cnf的配置

[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
performance_schema = OFF
[mysql]
no-auto-rehash
default-character-set=utf8

sh /root/docker/mysql/start.sh

#!/bin/bash 

echo "create a mysql container.."
docker run -d --name mysql \
           -v $(pwd)/conf.d:/etc/mysql/conf.d \
           -v $(pwd)/data:/var/lib/mysql \
           -e MYSQL_ROOT_PASSWORD="123456789" \
           -e MYSQL_DATABASE="connforflow" \
           -p 3307:3306 \
       mysql:5.7.19 \
           --character-set-server=utf8 --collation-server=utf8_general_ci

简单说明:docker run 为运行容器的命令,若本地仓库不存在mysql:5.7.19的镜像则自动从DockerHub pull下来。

参数: -d, --detach Run container in background and print container ID 分离在后台运行容器并打印容器ID

-v, --volume list Bind mount a volume 卷列表绑定卷

-e, --env list Set environment variables env list设置环境变量

-p, --publish list Publish a container’s port(s) to the host发布列表将容器的端口发布到主机

查看容器,并进行数据库查看

docker ps -a

docker exec -it xxx bash

在这里插入图片描述

三. 开始在docker部署和运行如下:

创建prod.py文件:在manage.py同级目录下:
# 生产时环境
import os
pre_path = os.path.dirname(os.path.realpath(__file__))
os.system('python3 {}/manage.py runserver 0.0.0.0:8000'.format(pre_path))

然后使用git将代码上传

git add .
git commit -m 'ok'
git push origin master

在服务器的命令行新建一个文件夹,将包下载在该文件夹中,然后在文件夹下新建Dockerfile文件和requirements.txt文件:

#基于的基础镜像
FROM python:3.8
#代码添加到code文件夹

RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/

# 安装支持
#RUN pip3 install -i https://pypi.doubanio.com/simple/ -r requirements.txt
ADD . /code/

Run pip3 install -i https://pypi.doubanio.com/simple/ -r requirements.txt
 
CMD ["python3", "/code/Blog_Server/prod.py"]

新建requirements.txt:或者导出

pip freeze > requirements.txt
或者
altgraph==0.17
amqp==1.4.9
anyjson==0.3.3
argon2-cffi==20.1.0
asgiref==3.3.4
async-generator==1.10
attrs==19.3.0
Automat==20.2.0
backcall==0.2.0
beautiful==0.0.2
billiard==3.3.0.23
bleach==3.3.0
celery==3.1.25
certifi==2019.11.28
cffi==1.14.0
chardet==3.0.4
click==7.1.2
click-didyoumean==0.0.3
click-plugins==1.1.1
click-repl==0.2.0
colorama==0.4.4
constantly==15.1.0
cryptography==2.8
cssselect==1.1.0
cycler==0.10.0
decorator==4.4.2
defusedxml==0.7.1
Django==3.2.4
django-cors-headers==3.7.0
django-email-users==1.1.0
django-ranged-response==0.2.0
django-redis==5.0.0
django-simple-captcha==0.5.13
djangorestframework==3.12.2
docutils==0.17.1
easygui==0.98.1
entrypoints==0.3
environment==1.0.0
et-xmlfile==1.1.0
future==0.18.2
html5lib==1.0.1
hyperlink==19.0.0
idna==2.9
importlib-metadata==4.6.0
incremental==17.5.0
ipykernel==5.5.0
ipython==7.21.0
ipython-genutils==0.2.0
ipywidgets==7.6.3
itsdangerous==1.1.0
jieba==0.42.1
keyring==23.0.1
kiwisolver==1.3.1
kombu==3.0.37
matplot==0.1.9
matplotlib==3.4.2
mutagen==1.40.0
numpy==1.21.0
packaging==20.9
Pillow==8.2.0
pkginfo==1.7.0
prompt-toolkit==3.0.19
py3Fdfs
Pygments==2.9.0
pyloco==0.0.139
PyMySQL==1.0.2
pyparsing==2.4.7
python-dateutil==2.8.1
pytz==2021.1
readme-renderer==29.0
redis==3.5.3
requests==2.25.1
requests-toolbelt==0.9.1
rfc3986==1.5.0
SimpleWebSocketServer==0.1.1
six==1.16.0
sqlparse==0.4.1
tqdm==4.61.1
twine==3.4.1
typing==3.7.4.3
urllib3==1.26.6
ushlex==0.99.1
vine==5.0.0
wcwidth==0.2.5
webencodings==0.5.1
websocket-client==1.1.0
xlwt==1.3.0
zipp==3.4.1

创建镜像django:

docker build -t django .

运行:

docker run -it -p 8000:8000 --name django django

浏览器访问

http://www.ip:8000

未完待续…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值