目录
- 前言
- 安装 redis
- 安装步骤1:准备
- 1.1:安装 docker。
- 1.2:搜索可以使用的镜像。
- 1.3:也可从docker hub上搜索镜像。
- 1.4:选择合适的redis镜像。
- 安装步骤2:拉取镜像
- 2.1:拉取镜像
- 2.2:查看已拉取的镜像
- 安装步骤3:创建容器
- 3.1:创建容器方式1:快速创建容器
- 3.2:创建容器方式2:创建容器+配置文件
- 3.3:创建容器方式3(推荐):创建容器+配置文件+数据目录
- 安装步骤4:运行容器
- 安装步骤5:确认reids是否运行
- 5.1 docker ps 查看
- 5.2 登录redis控制台
- redis 的配置
- 修改IP
- 修改密码
- 容器设置
- 容器随 docker 自动启动
- 容器设置IP
- redis持久化
- 其它
- 登录到容器
- 命令行登录 redis
- 命令行登录到指定IP上的 redis
- 错误处理
- 错误1:`>>> 'repl-diskless-sync-max-replicas 0' Bad directive or wrong number of arguments`
- 参考
前言
- CentOS Linux release 7.6.1810 (Core)
- TencentOS Server 2.4(与 CentOS 7用户态完全兼容)
- TencentOS Server 3.1(与 CentOS 8用户态完全兼容)
- Docker version 19.03.14, build 5eb3275d40
- 【docker】常用操作命令
安装 redis
安装步骤1:准备
1.1:安装 docker。
安装 docker 参考:【Centos 8】【Centos 7】安装 docker
如果已经安装了 已安装,跳过这里。
1.2:搜索可以使用的镜像。
shell> docker search redis
1.3:也可从docker hub上搜索镜像。
docker hub redis镜像,docker hub-stage。
1.4:选择合适的redis镜像。
redis版本 | 拉取命令 |
---|---|
最新版本 | docker pull redis:latest |
6.2.1 | docker pull redis:6.2.1 |
6.2 | docker pull redis:6.2 |
6.0 | docker pull redis:6.0 |
5.0.12 | docker pull redis:5.0.12 |
5.0 | docker pull redis:5.0 |
4.0.13 | docker pull redis:4.0.13 |
4.0 | docker pull redis:4.0 |
安装步骤2:拉取镜像
2.1:拉取镜像
shell> docker pull redis:6.2.1
6.2.1: Pulling from library/redis
f7ec5a41d630: Pull complete
a36224ca8bbd: Pull complete
7630ad34dcb2: Pull complete
dd0ea236b03b: Pull complete
ed6ed4f2f5a6: Pull complete
8788804112c6: Pull complete
Digest: sha256:08e282682a708eb7f51b473516be222fff0251cdee5ef8f99f4441a795c335b6
Status: Downloaded newer image for redis:6.2.1
/library/redis:6.2.1
2.2:查看已拉取的镜像
shell> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis 6.2.1 de974760ddb2 34 hours ago 105MB
rabbitmq 3-management ee045987e252 5 weeks ago 187MB
hello-world latest d1165f221234 5 weeks ago 13.3kB
sonatype/nexus3 latest 8716903d1912 3 months ago 629MB
安装步骤3:创建容器
- 容器名称:redis1
- 有几种创建容器的方式
- 根据自己的需求确定选择哪种方式创建容器
3.1:创建容器方式1:快速创建容器
shell> docker run -itd -p 6379:6379 --name redis1 redis:6.2.1
这种方式创建容器后,各项配置是默认的。暂不清楚如何修改。
3.2:创建容器方式2:创建容器+配置文件
- 创建redis1目录,并下载
shell> mkdir -p /data/redis1 && cd /data/redis1
shell> mkdir conf
shell> wget /releases/redis-6.2.
shell> tar -zxvf redis-6.2.
shell> cp redis-6.2.1/ conf/
- redis-stable 的 : /redis-stable/
- redis 6.2.1版本的文件的从这里下载
- 从redis官网下载对应版本的
- 或者其它途径获取有效的,将有效的放到
/data/redis1/conf
目录下
- 创建镜像
shell> docker create --name redis1 \
-v /data/redis1/conf:/usr/local/etc/redis \
redis:6.2.1 redis-server /usr/local/etc/redis/
-v /data/redis1/conf:/usr/local/etc/redis
redis-server /usr/local/etc/redis/
- 如果需要将redis端口暴露出去,则添加参数
-p 6379:6379
3.3:创建容器方式3(推荐):创建容器+配置文件+数据目录
- 创建redis1目录,并下载(参考上面)
- 创建镜像
shell> docker create --name redis1 \
-v /data/redis1/conf:/usr/local/etc/redis \
-v /data/redis1/data:/data \
-m 512M \
redis:6.2.1 redis-server /usr/local/etc/redis/
-v /data/redis1/conf:/usr/local/etc/redis
-v /data/redis1/data:/data
redis-server /usr/local/etc/redis/
- 如果需要将redis端口暴露出去,则添加参数
-p 6379:6379
安装步骤4:运行容器
shell> docker start redis1
查看运行着的容器
[root@xxx ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f113ee9d115a redis:6.2.1 "…" 2 minutes ago Up 2 minutes redis1
安装步骤5:确认reids是否运行
5.1 docker ps 查看
shell> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9887b09c8c68 redis:6.2.1 "docker-entrypoint..." 15 months ago Up 6 weeks 6379/tcp redis1
5.2 登录redis控制台
shell> docker exec -it redis1 redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit
redis 的配置
修改 redis 的配置文件
修改IP
在redis 的配置文件中,修改bind配置项。
-
bind 127.0.0.1 172.19.0.2 -::1
(172.19.0.2为该docker容器的ip) -
bind * -::*
(这个通用)
修改密码
-
requirepass xxxx
(xxxx为密码)
容器设置
容器随 docker 自动启动
设置容器的重启策略
shell> docker update --restart=always redis1
- 每次docker启动时,容器也会自动启动
容器设置IP
向网络中添加容器
shell> docker network connect --ip 172.19.0.2 mynetwork redis1
- docket ip : 172.19.0.2
redis持久化
在redis 的配置文件中,修改save选项
save 20 3 表示在20秒内如果至少有3个key发生变化,则保存
其它
登录到容器
shell> docker exec -it redis1 /bin/bash
root@a1bf20d19520:/data#
命令行登录 redis
[root@xxx ~]# docker exec -it redis1 redis-cli
127.0.0.1:6379> ping
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth xxxx
OK
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit
命令行登录到指定IP上的 redis
[root@xxx ~]# docker exec -it redis1 redis-cli -h 172.19.0.2 -p 6379
172.19.0.2:6379> ping
(error) NOAUTH Authentication required.
172.19.0.2:6379> auth xxxx
OK
172.19.0.2:6379> ping
PONG
172.19.0.2:6379> exit
错误处理
错误1:>>> 'repl-diskless-sync-max-replicas 0' Bad directive or wrong number of arguments
shell> docker logs redis1
*** FATAL CONFIG FILE ERROR (Redis 6.2.1) ***
Reading the configuration file, at line 624
>>> 'repl-diskless-sync-max-replicas 0'
Bad directive or wrong number of arguments
文件要与redis的版本一致,如果下载不对应的配置文件时,部分属性会报错。
参考
【CentOS7】【docker】常用操作命令
【Centos 8】【Centos 7】安装 docker
docker inspect 查看部分数据
redis持久化
redis的持久化存储