下载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异步发送邮件前面有写
[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]