Docker 安装redis

吴书松
吴书松
发布于 2026-03-28 / 30 阅读
0

Docker 安装redis

1、拉取镜像

docker pull docker.1ms.run/library/redis:7.2

2、进入指定目录,运行启动命令

docker run -d --name redis --log-opt max-size=10m --log-opt max-file=3 -m 512m --cpus=2 --restart unless-stopped -p 6379:6379 -v ~/redis/data:/data -v ~/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf:ro 08567fe300e8 redis-server /usr/local/etc/redis/redis.conf --bind 0.0.0.0 --requirepass 123456

或者指定配置文件

mkdir -p /opt/redis/conf
cat > /opt/redis/conf/redis.conf << 'EOF'
# 基础配置
requirepass 123456
bind 0.0.0.0
protected-mode no
port 6379

# AOF 持久化配置(你要的 aop -> AOF)
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

# RDB 持久化配置(可选,作为补充备份)
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb

# 数据目录(与 volume 映射对应)
dir /data

# 内存配置(限制 400MB 给 Redis 数据,留 112MB 给系统)
maxmemory 400mb
maxmemory-policy allkeys-lru

# 日志配置
loglevel notice
logfile ""

# 性能优化
tcp-backlog 511
timeout 0
tcp-keepalive 300
databases 16
EOF

# 3. 启动 Redis 容器
docker run -d \
  --name redis \
  --restart unless-stopped \
  --network jm-network \
  -p 16379:6379 \
  -v my-redis-volume:/data \
  -v /opt/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf:ro \
  --cpus=1 \
  --memory=512m \
  --memory-swap=512m \
  --log-driver json-file \
  --log-opt max-size=10m \
  --log-opt max-file=3 \
  docker.1ms.run/library/redis:7.2 \
  redis-server /usr/local/etc/redis/redis.conf

swarm模式

version: '3.8'

services:
  my-redis:
    image: 192.168.2.240:15000/library/redis:7.2
    container_name: my-redis
    restart: unless-stopped
    networks:
      - my-network
    ports:
      - "16379:6379"
    volumes:
      - my-redis-volume:/data
    command: >
      redis-server
      --requirepass 123456
      --bind 0.0.0.0
      --protected-mode no
    deploy:
      resources:
        limits:
          cpus: '1'
          memory: 512M
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

networks:
  my-network:
    external: true

volumes:
  my-redis-volume:

单机模式

version: '2.4'

services:
  my-redis:
    image: 192.168.2.240:15000/library/redis:7.2
    container_name: my-redis
    restart: unless-stopped
    networks:
      - my-network
    ports:
      - "16379:6379"
    volumes:
      - my-redis-volume:/data
    command: redis-server --requirepass 123456 --bind 0.0.0.0 --protected-mode no
    cpus: 1
    mem_limit: 512m
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

networks:
  my-network:
    external: true

volumes:
  my-redis-volume:

启用RDB/AOF

version: '3.8'

services:
  redis:
    image: docker.1ms.run/library/redis:7.2
    container_name: redis
    restart: unless-stopped
    networks:
      wss-cloud-network:
        ipv4_address: 192.168.20.20
    ports:
      - "16379:6379"
    volumes:
      - ./data:/data
    command: >
      redis-server
      --requirepass 123456
      --bind 0.0.0.0
      --protected-mode no
      --appendonly yes
      --save 900 1
      --save 300 10
      --save 60 10000
    cpus: 1
    mem_limit: 2g
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

networks:
  wss-cloud-network:
    external: true
    name: wss-cloud-network