容器化Django+Redis+HAProxy应用栈搭建备忘

本文记录了使用Docker构建Django+Redis+HAProxy应用栈的过程,包括Redis主从服务、Django应用和HAProxy的配置与启动。在搭建过程中,针对遇到的问题进行了说明,如Redis数据卷映射、Django的URL配置变化以及HAProxy的监听设置。通过容器化,简化了应用栈的部署与管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近参照浙江大学SEL实验室所著的《Docker容器与容器云》体验了一把使用Docker构建Django+Redis+HAProxy应用栈。由于包括docker的以上几种软件持续更新的原因,按照原书中一些步骤是无法得出期望结果的,解决问题后作此记录备查。
以下步骤需要对照原书内容参看。

目录

应用栈架构

应用栈包含6个docker容器节点,3个Redis数据库节点,1主2从;2个Django应用节点和1个HAProxy节点。
这里写图片描述
首先pull所需的docker镜像:django, redis及haproxy。由于众所周知的原因,需要使用国内容器厂商的镜像加速功能,这里使用daocloud的镜像加速

    $ docker pull django
    $ docker pull redis
    $ docker pull haproxy

镜像获取到之后如果按照书上步骤立即启动容器会导致后续工作比较麻烦。这是因为需要在host环境下修改配置文件并映射到容器中相应的文件夹,先作好配置文件的准备再使用正确的Volumes映射参数来启动容器才容易得到预期的结果。

Redis主从服务的搭建

原书中给出的redis容器启动命令应该是遗漏了数据卷映射的参数”-v /data”,所以后面如果使用docker inspect --format "{ { .Volumes }} <container id> 命令去查看映射/data到host的/var/lib/docker下哪个文件夹时会出错。加了“-v /data”映射后使用上述命令仍然查看不到/data数据卷映射的位置。
原书的意图是通过数据卷把redis.conf配置文件拷进容器内供启动redis-server使用,所以可以直接把host的/etc/redis/redis.conf映射入容器。
首先在host安装一个redis,得到redis.conf模板
$sudo apt-get install redis-server
然后编辑/etc/redis/redis.conf文件,分成两个版本,一个redis-master.c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值