保持docker容器中docker compose之间的redis数据处于活动状态

x759pob2  于 2021-06-08  发布在  Redis
关注(0)|答案(1)|浏览(825)

问题是保持 Redis 数据活动介于 docker-compose up 以及 docker-compose down.docker-compose.yaml 文件波纹管 db 服务用途- postgres_data:/var/lib/postgresql/data/ 卷以保持数据活动。我想为你做这样的事 redis 但我找不到可行的解决办法。我实现这一目标的唯一方法是将数据存储在本地存储器中 - ./storage/redis/data:/data. 所有的实验都没有结果。
问题是-是否有可能以某种方式将redis数据存储在 docker-compose down 以及 docker-compose up 在一本书中,它也是在 DB 服务?
抱歉,如果这个问题很幼稚…
谢谢

version: '3.8'

services:
  web:
    build: .
    command: python /code/manage.py runserver 0.0.0.0:8000
    env_file:
      - ./series/.env
    volumes:
      - .:/code
    ports:
      - 8000:8000
    depends_on:
      - db
      - redis

  db:
    build:
      context: .
      dockerfile: postgres.dockerfile
    restart: always
    env_file:
      - ./series/.env
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=1q2w3e
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    ports:
      - target: 5432
        published: 5433
        protocol: tcp
        mode: host

  redis:
    image: redis:alpine
    command: redis-server --appendonly yes
    ports:
      - target: 6379
        published: 6380
        protocol: tcp
        mode: host
    volumes:
        - ./storage/redis/data:/data
    restart: always
    environment:
      - REDIS_REPLICATION_MODE=master

volumes:
    postgres_data:
x3naxklr

x3naxklr1#

您只需要为redis数据添加一个命名卷 postgres_data :

volumes:
    postgres_data:
    redis_data:

然后将主机路径更改为命名卷:

redis:
    ...
    volumes:
        - redis_data:/data

如果redis使用主机路径保存数据,那么上面的方法对您有效。我提到这一点是因为您必须配置redis以启用持久存储(请参见redis docker hub页面)https://hub.docker.com/_/redis).
当心,快跑 docker-compose down -v 也会破坏卷。

相关问题