hudada-cli
Version:
专为程序员准备的本地文档搜索,快捷开发工具
73 lines (55 loc) • 2.28 kB
Markdown
Redis
===
[Redis](https://redis.io/)(Remote Dictionary Server ),即远程字典服务,是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
## 下载镜像
```bash
$ docker pull redis:4.0.11
```
## 运行容器
```bash
$ docker run -d --rm -p 6389:6379 --name redis2 redis:4.0.11 redis-server --appendonly yes
```
## 使用自己的配置
[Redis](https://hub.docker.com/_/redis/) 加载自己的配置文件,需要重新编译一个 `images`,通过复制官方[Redis 配置](https://github.com/antirez/redis/blob/3a27b3d0d85d56ecd758b56c6af477ae5ff08a76/redis.conf)。
```dockerfile
FROM redis:4.0.11
RUN mkdir -p /etc/redis
# 设置时区
ENV TimeZone=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone
COPY ./redis.conf /etc/redis/redis.conf
CMD [ "redis-server", "/etc/redis/redis.conf" ]
EXPOSE 6379
```
创建 docker 镜像,镜像名字为 `redis`,标记 `4.0.11`
```bash
docker image build -t redis:4.0.11 .
```
如果你不需要更改配置,可以直接 `docker pull redis:4.0.11` 下载镜像。
```bash
# 先运行 redis
docker run -d --rm -p 6389:6379 --name redis2 redis:4.0.11 redis-server --appendonly yes
# docker 禁止用主机上不存在的文件挂载到 container 中已经存在的文件
docker container cp redis2:/etc/redis/redis.conf $HOME/_docker/redis/conf/redis.conf
# 完成拷贝文件,停止 redis 容器 --rm 参数表示停止删除 redis2 容器
docker stop redis2
# 这个时候,container 中已经存在的配置文件
docker run -d \
-p 6389:6379 \
--name redis2 \
--restart always \
-v $HOME/_docker/redis/data:/data \
-v $HOME/_docker/redis/conf:/etc/redis \
-v /etc/localtime:/etc/localtime:ro \
redis:4.0.11 redis-server --appendonly yes
# redis-server --appendonly yes 数据持久化
```
## 修改配置文件
修改配置文件 `$HOME/_docker/redis/conf/redis.conf` 将数据持久化目录指向 `/data` 目录,设置配置中的 `dir /data`。
```bash
vim ~/_docker/redis/redis.conf
```
## 重启容器让配置生效
```
docker restart redis2
```