126 lines
2.9 KiB
Markdown
126 lines
2.9 KiB
Markdown
# Redis
|
|
|
|
针对Redis的 Docker 镜像,用于提供 Redis 服务。
|
|
|
|
|
|
|
|
## 基本信息
|
|
|
|
* 镜像地址:endial/redis:v5.0.8
|
|
* 依赖镜像:endial/ubuntu:v18.04
|
|
|
|
- 镜像地址:endial/redis-alpine:v5.0.8
|
|
- 依赖镜像:endial/alpine:v3.11
|
|
|
|
|
|
|
|
## 数据卷
|
|
|
|
镜像默认提供以下数据卷定义:
|
|
|
|
```shell
|
|
/srv/data # Redis 数据文件,主要存放Redis持久化数据;自动创建子目录redis
|
|
/srv/conf # Redis 配置文件;自动创建子目录redis
|
|
/var/log # 日志文件,日志文件名为:redis-server.log
|
|
/var/run # 进程运行PID文件,PID文件名为:redis_6379.pid
|
|
```
|
|
|
|
如果需要持久化存储相应数据,需要在宿主机建立本地目录,并在使用镜像初始化容器时进行映射。
|
|
|
|
举例:
|
|
|
|
- 使用宿主机`/opt/conf`存储配置文件
|
|
- 使用宿主机`/srv/data`存储数据文件
|
|
- 使用宿主机`/srv/log`存储日志文件
|
|
|
|
创建以上相应的宿主机目录后,容器启动命令中对应的映射参数类似如下:
|
|
|
|
```dockerfile
|
|
-v /host/dir/for/conf:/srv/conf -v /host/dir/for/data:/srv/data -v /host/dir/for/log:/var/log
|
|
```
|
|
|
|
> 注意:应用需要使用的子目录会自动创建。
|
|
|
|
|
|
|
|
## 使用说明
|
|
|
|
|
|
|
|
### 运行容器
|
|
|
|
生成并运行一个新的容器:
|
|
|
|
```bash
|
|
docker run -d --name redis \
|
|
-p 6379:6379 \
|
|
-v /host/dir/for/data:/srv/data \
|
|
-v /host/dir/for/conf:/srv/conf \
|
|
-v /host/dir/for/log:/var/log \
|
|
-v /host/dir/for/run:/var/run \
|
|
endial/redis:v5.0.8
|
|
```
|
|
|
|
|
|
|
|
使用个性化配置文件运行容器:
|
|
|
|
```shell
|
|
docker run -d --name redis \
|
|
-p 6379:6379 \
|
|
-v /host/dir/for/data:/srv/data \
|
|
-v /host/dir/for/conf:/srv/conf \
|
|
-v /host/dir/for/log:/var/log \
|
|
-v /host/dir/for/run:/var/run \
|
|
endial/redis:v5.0.8 redis-server /srv/conf/redis/redis.conf --appendonly yes
|
|
```
|
|
|
|
- `redis-server /srv/conf/redis/redis.conf`:用于以指定的配置文件创建容器,路径不可修改(为容器中路径)
|
|
- 该文件可以在宿主机路径`/host/dir/for/conf`中找到并进行修改;修改后需要重启容器才能使配置起作用
|
|
- `--appendonly yes`:打开redis持久化配置(非必须),可通过配置文件修改
|
|
|
|
|
|
|
|
如果存在`dvc`数据容器,可以使用以下命令:
|
|
|
|
```bash
|
|
docker run -d --name redis \
|
|
-p 6379:6379 \
|
|
--volumes-from dvc \
|
|
endial/redis:v5.0.8
|
|
```
|
|
|
|
|
|
|
|
### 进入容器
|
|
|
|
使用容器ID或启动时的命名(本例中命名为`redis`)进入容器:
|
|
|
|
```shell
|
|
docker exec -it redis /bin/sh
|
|
```
|
|
|
|
|
|
|
|
### 停止容器
|
|
|
|
使用容器ID或启动时的命名(本例中命名为`redis`)停止:
|
|
|
|
```shell
|
|
docker stop redis
|
|
```
|
|
|
|
|
|
|
|
## 注意事项
|
|
|
|
- 容器中Redis启动参数不能配置为后台运行,只能使用前台运行方式,即:`daemonize no`
|
|
- 如果应用使用后台方式运行,则容器的启动命令会在运行后自动退出,从而导致容器退出
|
|
|
|
|
|
|
|
----
|
|
|
|
本文原始来源 [Endial Fang](https://github.com/endial) @ [Github.com](https://github.com)
|
|
|