# Docker Redis
docker hub 网址:https://hub.docker.com/_/redis (opens new window)
当前(2020-04-02) latest 版本和 6.2.1 是同一个版本。
# 1. 安装及测试
# 查询中央仓库
docker search -f is-official=true redis
# 从中央仓库下载
docker pull redis:6.2.1
# 或,直接导入已有的镜像文件
# docker load -i redis-6.2.1.tar
# 查看本地镜像
docker images
# 会出现类似以下内容:
# REPOSITORY TAG IMAGE ID CREATED SIZE
# redis 6.2.1 7f33e76fcb56 45 hours ago 105MB
运行容器:
# 删除曾经已有的同名容器
docker rm -f redis-test
# 创建并运行 redis 容器的语法
docker run -d --name <指定容器名> -p <指定宿主机端口>:6379 redis:6.2.1
# 通过 docker ps 命令查看容器的运行信息
例如:
docker run \
-d \
--name redis-test \
-p 6379:6379 \
redis:6.2.1
验证安装成功
# 进入 redis-test 容器
docker exec -it redis-test /bin/bash
# 执行 redis-cli 连接 redis server
redis-cli
# 2. 容器中的配置文件和数据的存储
docker-redis 的 “数据存储目录” 在容器内部的
/data
很显然,只有开启持久化功能时,才会有数据存储于此。
早期的 Docker Redis 在容器中有默认的配置文件,但现在没有了。
从 5.x 版本开始 Docker Redis 改变了思路,容器内部不在包含配置文件,而是 要求容器启动时指定宿主机中的一个文件作为配置文件 。
例如:
docker run \ ... \ -v <宿主机上的redis.conf>:/usr/local/etc/redis/redis.conf \ redis:6.2.1 \ redis-server /usr/local/etc/redis/redis.conf \ ...
当然,如果你没有提供配置文件,它还是有默认的配置的,只不过你在容器中找不到配置文件。
# 3. 配置与挂载
删除已存在的同名容器
docker rm -f redis-6379
创建本机挂载目录
mkdir -p ~/docker/redis/6379/data
创建并运行容器
docker run \ -d \ --name redis-6379 \ -p 6379:6379 \ -v ~/docker/redis/6379/redis.conf:/usr/local/etc/redis/redis.conf \ -v ~/docker/redis/6379/data:/data \ redis:6.2.1 \ redis-server /usr/local/etc/redis/redis.conf \ --appendonly yes
--appendonly yes 开启 Redis 持久化功能。
# 4. docker-compose 启动
version: '3'
services:
redis:
image: redis:5.0
container_name: redis-6379
mem_limit: 512m
ports:
- 6379:6379
volumes:
- "~/docker/6379/data:/data"
- "./docker/6379/redis.conf:/usr/local/etc/redis/redis.conf"
command:
redis-server /usr/local/etc/redis/redis.conf --appendonly yes