docker部署秒杀系统
2026/6/10 21:03:25 网站建设 项目流程

RabbitMQ(消息中间件):基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统

一、 使用docker命令运行mysql服务
  1. 搭建一台新的centos7服务器,前面有写,或者直接使用纯净版的centos7
    我这里使用的是纯净版的centos7服务器(步骤都一样)
  2. 查看mysql服务是否在启动,有的化先停掉,防止冲突
    netstat -tpln#或者netstat -tunlp
systemctl stop mysqld
  1. 创建并运行mysql容器
docker run -id --name mysql -p 3306:3306 -v /opt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=sq registry.cn-hangzhou.aliyuncs.com/sqqdcl/db:v6


如果命令报错,粘贴后先再这里调试

查看启动的容器

docker ps
  1. 创建并运行 rabbitmq 容器,发现命令太长,可以在下面的框内调试
docker run -id --name rabbitmq -p 5672:5672 -p 15672:15672 -p 15692:15692 -v /opt/rabbitmq/data:/var/lib/rabbitmq -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guestrabbitmq:3.8.3-management


使用docker ps命令查看mq启动状态: 端口和状态如下代表启动成功

5. 创建并运行redis容器,出现下述界面运行无报错

docker run -id --name redis -p 6379:6379 -v /opt/redis/data:/data -v /etc/localtime:/etc/localtime:ro registry.cn-hangzhou.aliyuncs.com/sqqdcl/redis


6. 创建并运行秒杀系统的容器,出现下述界面运行无报错

docker run -id --name miaosha -p 7080:7080 --link mysql --link rabbitmq --linkredis:myRedis -v /etc/localtime:/etc/localtime:ro registry.cn-hangzhou.aliyuncs.com/sqqdcl/miaosha:3.0


7. 通过各个浏览器 192.168.xx.xxx:7080端口访问秒杀系统

  1. 如果不能访问,查看防火墙是否开启,或者把秒杀系统端口加入防火墙规则
    status:查看防火墙状态 start:开启防火墙, stop:关闭防火墙
systemctl status firewalld systemctl start firewalld systemctl stop firewalld
  1. 把7080端口加入到防火墙规则里面 –加上–permanent永久生效,没有此参数重启后失效
sudo firewall-cmd --add-port=7080/tcp --permanent
  1. 重新加载防火墙(刷新防火墙的配置)
firewall-cmd --reload

-----至此秒杀系统配置完成!!!

后续启动

  1. 把docker加入开启启动(选用)
systemctlenabledocker
  1. 停止本地的msyql服务
systemctl stop mysqld
  1. 启动msyqld
dockerstart mysql
  1. 启动rabbitmq
dockerstart rabbitmq
  1. 启动redis
dockerstart redis
  1. 启动秒杀
dockerstart miaosha
  1. 为了一劳永逸把相关端口加入防火墙规则(一下端口启动容器后可能会有所变化,根据相关端口加入)
    sudo firewall-cmd --add-port=7080/tcp --permanent
    sudo firewall-cmd --add-port=6379/tcp --permanent
    sudo firewall-cmd --add-port=4369/tcp --permanent
    sudo firewall-cmd --add-port=3306/tcp --permanent

  2. 查看当前加入防火墙内开放的端口

firewall-cmd--zone=public --list-ports

或者

firewall-cmd --list-ports
  1. 重新加载防火墙配置
firewall-cmd--reload
  1. 第二种办法:或者在启动搜友容器后直接关闭防火墙
systemctl stop firewalld

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询