使用 docker-compose 部署 Redis 服务

项目 Docker 化部署的最后一步,就差 Redis 了。本来以为是一件很简单的事,没想到折腾了我大半天的时间,下面就来分享分享我的采坑经历。

docker-compose 文件:

version: '3'

services:
  redis:
    image: redis:3.2.12
    container_name: redis
    restart: always
    network_mode: host
    command: redis-server /etc/redis.conf
    ports:
      - 6379:6379
    volumes:
      - /data:/data
      - ./redis.conf:/etc/redis.conf

当前目录下执行:

# docker-compose up

本来以为服务一启,事情就这么愉快的结束了,但是,报错。

Can’t open the log file: No such file or directory

原因就是 redis.conf 文件直接用的是在物理机上部署时用的,logfile 参数配的是 /var/lib/redis,但 docker 容器里没有这个目录,但是有 /data 目录,所以,把 logfile 配置成 /data 即可。

改完之后再一启,没有任何信息输出,看来是成功了。

docker ps 看看,没有容器。

这下给我整懵了,咋回事呢?其实报错都不怕,就怕启动不成功,还没有报错信息。

就这个问题给我折腾了好久,突然灵光一闪,想到 redis 会不会是以后台进程起的,导致容器直接退出。

检查一下配置文件中的 daemonize 参数,果然是 yes。改成 no 之后,就可以正常启动了。

就这么个破问题,卡了这么长时间,而且这类问题之前还遇到过,真是让人郁闷。

至此,项目中的所有服务就都 Docker 化部署了。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用docker-compose部署Redis集群的步骤: 1.创建一个目录,例如redis-cluster,并在该目录中创建一个docker-compose.yaml文件。 2.在docker-compose.yaml文件中编写以下内容: ```yaml version: '3' services: redis-1: image: redis:6.0.9 command: redis-server /usr/local/etc/redis/redis.conf volumes: - ./redis.conf:/usr/local/etc/redis/redis.conf ports: - "6379" networks: - redis-cluster redis-2: image: redis:6.0.9 command: redis-server /usr/local/etc/redis/redis.conf volumes: - ./redis.conf:/usr/local/etc/redis/redis.conf ports: - "6380" networks: - redis-cluster redis-3: image: redis:6.0.9 command: redis-server /usr/local/etc/redis/redis.conf volumes: - ./redis.conf:/usr/local/etc/redis/redis.conf ports: - "6381" networks: - redis-cluster networks: redis-cluster: driver: bridge ``` 3.在redis-cluster目录中创建一个redis.conf文件,并将以下内容复制到文件中: ```conf bind 0.0.0.0 port 6379 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes requirepass 1111 masterauth 1111 ``` 4.在终端中导航到redis-cluster目录,并运行以下命令启动Redis集群: ```shell docker-compose up -d ``` 5.使用以下命令进入redis-1容器: ```shell docker exec -it redis-cluster_redis-1_1 /bin/bash ``` 6.在redis-1容器中,使用以下命令创建Redis集群: ```shell redis-cli --cluster create 172.20.0.2:6379 172.20.0.3:6379 172.20.0.4:6379 --cluster-replicas 0 ``` 7.现在,您已经成功地使用docker-compose部署Redis集群。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值