docker部署redis并集成到django+celery实现异步发送邮件

下载redis的配置文件

[root@asimov redis]# wget http://download.redis.io/redis-stable/redis.conf

配置redis

#是否开启安全模式,默认开启:配bind和密码的话开启,不然开启后只能本地访问
protected-mode no
#为0不会断开
timeout 0
# 是否以守护进程运行 no,因为你的docker启动的时候已经 -d后台运行 了
daemonize no
#没有后台程序控制
supervised no
#日志级别
loglevel notice
logfile "/var/log/redis/redis-server.log"
appendonly yes
appendfilename "appendonly.aof"

docker启动redis
–privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限

docker  run  -d --privileged=true -v /root/docker_data/redis/redis.conf:/etc/redis/redis.conf -v /root/docker_data/redis/redis-server.log:/var/log/redis/redis-server.log -v /root/docker_data/redis/data:/data  --name  reids  redis  redis-server  /etc/redis/redis.conf

参数
docker run -d:后台运行
--privileged=true:让redis容器拥有宿主的root权限
-v /root/docker_data/redis/redis.conf:/etc/redis/redis.conf :将宿主机的redis.conf挂载到容器中
-v /root/docker_data/redis/redis-server.log:/var/log/redis/redis-server.log :挂载日志文件到宿主机
-v /root/docker_data/redis/data:/data :将redis数据持久化到宿主机文件中
--name reids redis :容器名 镜像
redis-server /etc/redis/redis.conf:以配置文件启动reids

挂载挂载redis日志文件到本地的时候报错:

'logfile "/var/log/redis/redis-server.log"'
Can't open the log file: Permission denied

意思不能指定自定义的redis.log了,裂开
如果想自定义log的话参考:https://docs.docker.com/compose/compose-file/#logging

vim搜索关键字logfile

:?logfile

删除自定义日志路径

/var/log/redis/redis-server.log

创建容器

[root@asimov ~]# [root@asimov ~]# docker  run -d  --name  redisblog   -v /root/docker_data/redis/redis.conf:/etc/redis/redis.conf  -v /root/docker_data/redis/data:/data    redis  redis-server  /etc/redis/redis.conf

只是容器间通信的话就不用–privileged=true了
将redisblog容器加入blog-net桥接

[root@asimov ~]# docker  network  connect  blog-net redisblog

修改celery的配置
celery的消息队列和结果存储都用了redis

broker_url = 'redis://redisblog/0'
result_backend = 'redis://redisblog/1'

运行celery

celery  -A celery_send   worker  -l  info

celery异步发送邮件前面有写

django异步发送邮件
docker部署redis并集成到django+celery实现异步发送邮件_第1张图片
查看celery执行结果

[2020-04-23 11:06:47,324: INFO/MainProcess] celery@61c1a2f92913 ready.
[2020-04-23 11:07:01,758: INFO/MainProcess] Received task: celery_send.tasks.send_email[968391e7-48c2-4dfe-8ab0-28ed372e0892]  

你可能感兴趣的:(docker,Celery)