1、docker 挂载容器数据库到本地
下载安装mysql镜像:
docker pull mysql:5.7
挂载容器数据库到本地,并启动数据库容器:
docker run --rm --name quote-mysql -p 33061:3306 -v C:\Users\Administrator\Desktop\db:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=12345 -d mysql:5.7
--rm 容器停机自动删除数据库
-p 映射本地端口号:docker 数据库端口号
-v 挂载本地文件夹:数据库容器文件夹
-e 指定环境变量
-d 指定数据库和标签
创建数据库:
mysql -uroot -P33061 -p12345
show database;
create database quote charset=utf8;
下载安装redis镜像:
docker pull redis:latest
启动redis:
docker run -itd --name quote_redis -p 6378:6379 redis
2、本地django项目在容器启动
下载安装python镜像版本:
docker pull python:3.6.5
挂载本地项目到容器,并启动项目容器:
-i交互模式运行容器
-t分配临时终端给容器
-d 后台运行容器
--name 指定容器名
-v 挂载本地文件夹:数据库容器文件夹
/bash 启动并保存进程
3、本地Django项目数据库缓存配置
mysql数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '192.168.0.102',
'PORT': 33061,
'USER': 'root',
'PASSWORD': '12345',
'NAME': 'quote'
}
}
redis缓存
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://192.168.0.102:6378/0",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
celery应用
import os
from celery import Celery, platforms
from quote_web import settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'quote_web.settings')
app = Celery('quote_web', backend='redis://192.168.0.102:6378/8', broker='redis://192.168.0.102:6378/8')
# You can pass the object directly here, but using a string is better since then the worker doesn’t have to serialize the object.
app.config_from_object('django.conf:settings')
# 如果在工程的应用中创建了tasks.py模块,那么Celery应用就会自动去检索创建的任务。比如你添加了一个任#务,在django中会实时地检索出来。
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
# app.autodiscover_tasks()
platforms.C_FORCE_ROOT = True
CELERYD_MAX_TASKS_PER_CHILD = 10
@app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))
4、安装项目依赖并启动项目
pip install --upgrade pip
pip install -f requirement.txt
python manage.py migrate
python manage.py runserver 0.0.0.0:8000
网友评论