docker安装redis挂载容器卷同时开启持久化

目录
  • 一、安装
    • 1.搜索redis容器镜像并拉取容器镜像
    • 2.在宿主机本地创建redis存储配置文件和数据的目录,我这里创建/docker/redis下
    • 3.配置文件
    • 4.启动容器
  • 二、进入容器,指定配置文件启动redis服务
    • 1.启动redis服务
    • 2.指定6380端口登陆客户端
  • 三、删除容器后重新启动容器
    • 1.删除,然后查看宿主机目录下是否有持久化文件,查看这一步可以放在上一步后
    • 2.重启容器

说明:centOS操作系统,操作系统已安装过redis,端口6379已被占用。容器将会使用6380端口。本次操作为了实例化redis数据,并挂载到宿主机,防止容器被删除导致的数据丢失!

一、安装

1.搜索redis容器镜像并拉取容器镜像

[root@localhost]# docker search --limit 10 redis
[root@localhost]# docker pull redis

2.在宿主机本地创建redis存储配置文件和数据的目录,我这里创建/docker/redis下

[root@localhost redis]# pwd
/docker/redis

3.配置文件

复制原有redis.conf到/docker/redis/目录下

修改配置(最重要主要4项:修改后台运行默认为no、端口、存放位置、开启持久化):

requirepass 123
maxclients 10000

#如果要外网访问,请注释掉下面,或者修改为0.0.0.0,保险起见,也可以把protected-mode设置为no
bind 0.0.0.0

protected-mode no

#注意修改这里端口,根据你实际暴露端口情况配置
port 6380

tcp-backlog 511
timeout 0
tcp-keepalive 300

#注意这里要把后台运行设置为no,避免docker后台运行冲突
daemonize no

supervised no
pidfile /docker/redis/redis.pid
loglevel notice

databases 16

always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb

#注意修改这里的目录为容器内目录,默认reids进来是在/data/目录
dir /data/

replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no

#注意修改这里的配置,yes开启持久化,no关闭持久化
appendonly yes

appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes

4.启动容器

启动命令:docker run -p 6380:6380 --name forredis2 --privileged=true -v /docker/redis/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data -d redis

效果如下:

[root@localhost]# docker run -p 6380:6380 --name forredis2 --privileged=true -v /docker/redis/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data -d redis
d536dd728243ccee23b78e0289e30f7ee25084d308766fb9aa317d691d0dea7d
[root@localhost]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                                                 NAMES
d536dd728243   redis     "docker-entrypoint.s…"   3 seconds ago   Up 2 seconds   6379/tcp, 0.0.0.0:6380->6380/tcp, :::6380->6380/tcp   forredis2参数讲解:

参数介绍:

  • docker run -p 6380:6380 --name forredis2  别名
  • --privileged=true  挂载容器卷目录权限
  • -v /docker/redis/redis.conf[宿主机配置文件]:/etc/redis/redis.conf  [容器配置文件]
  • -v /docker/redis/data[宿主机数据存储位置]:/data [容器数据存储位置]
  • -d redis[:版本号]

二、进入容器,指定配置文件启动redis服务

1.启动redis服务

[root@localhost data]# docker exec -it forredis2 /bin/bash
root@d536dd728243:/data# redis-server /etc/redis/redis.conf
24:C 02 Jun 2022 02:42:56.096 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
24:C 02 Jun 2022 02:42:56.096 # Redis version=6.2.6, bits=64, commit=00000000, modified=0, pid=24, just started
24:C 02 Jun 2022 02:42:56.096 # Configuration loaded
24:M 02 Jun 2022 02:42:56.097 * monotonic clock: POSIX clock_gettime
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 6.2.6 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6380
 |    `-._   `._    /     _.-'    |     PID: 24
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           https://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

如果要后台运行,将启动redis命令后加上&,即

redis-server /etc/redis/redis.conf &

“/etc/redis/redis.conf”为容器内配置文件,已通过启动容器时挂载到宿主机的/docker/redis/redis.conf

2.指定6380端口登陆客户端

root@ce16f8c4fd8c:/data# redis-cli -p 6380
127.0.0.1:6380> auth 123
OK
127.0.0.1:6380> keys *
(empty array)
127.0.0.1:6380> set a 1
OK
127.0.0.1:6380> keys *
1) "a"

三、删除容器后重新启动容器

为了验证redis持久化,删除容器后数据在宿主机不会丢失,我们尝试删除容器后重新启动

1.删除,然后查看宿主机目录下是否有持久化文件,查看这一步可以放在上一步后

[root@localhost ~]# docker rm -f forredis2
forredis2
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE           COMMAND                  CREATED        STATUS                      PORTS     NAMES
e28f2bd4b59e   redis           "docker-entrypoint.s…"   10 hours ago   Exited (130) 10 hours ago             exciting_yalow
4e291d491cda   redis           "docker-entrypoint.s…"   10 hours ago   Exited (0) 10 hours ago               dreamy_rhodes
be3f2f06ed9f   redis           "docker-entrypoint.s…"   12 hours ago   Exited (0) 12 hours ago               awesome_jones
9a206e517842   redis           "docker-entrypoint.s…"   12 hours ago   Exited (0) 12 hours ago               hopeful_volhard
69c9f429c98a   7614ae9453d1    "docker-entrypoint.s…"   16 hours ago   Exited (1) 16 hours ago               youthful_goodall
25f26d7892d5   redis           "docker-entrypoint.s…"   18 hours ago   Exited (0) 16 hours ago               amazing_lovelace
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@localhost ~]# cd /docker/redis/data/
[root@localhost data]# ls
appendonly.aof  dump.rdb

2.重启容器

[root@localhost data]# docker run -p 6380:6380 --name forredis2 --privileged=true -v /docker/redis/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data -d redis
d536dd728243ccee23b78e0289e30f7ee25084d308766fb9aa317d691d0dea7dc

重复第【二】步的操作,进入redis,查看数据是否存在

[root@localhost ~]# docker exec -it forredis2 /bin/bash
root@d536dd728243:/data# redis-cli -p 6380
127.0.0.1:6380> auth 123
127.0.0.1:6380> keys *
1) "a"

数据存在,成功!

到此这篇关于docker安装redis挂载容器卷同时开启持久化的文章就介绍到这了,更多相关docker 安装redis挂载容器卷内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • docker安装redis 5.0.7并挂载外部配置和数据问题

    Redis 是一个开源的使用 ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 的 NoSQL 数据库,并提供多种语言的 API. 环境 CentOS Linux release 7.7.1908 (Core) 拉取redis 5.0.7 镜像 docker pull redis:5.0.7 创建挂载目录 mkdir -p /home/app/redis/conf mkdir -p /home/app/redis/data 下载redis.conf redis.

  • docker安装redis挂载容器卷同时开启持久化

    目录 一.安装 1.搜索redis容器镜像并拉取容器镜像 2.在宿主机本地创建redis存储配置文件和数据的目录,我这里创建/docker/redis下 3.配置文件 4.启动容器 二.进入容器,指定配置文件启动redis服务 1.启动redis服务 2.指定6380端口登陆客户端 三.删除容器后重新启动容器 1.删除,然后查看宿主机目录下是否有持久化文件,查看这一步可以放在上一步后 2.重启容器 说明:centOS操作系统,操作系统已安装过redis,端口6379已被占用.容器将会使用6380

  • Docker安装Redis容器的实现步骤

    目录 Docker 安装Redis 1.寻找Redis镜像 2.下载Redis镜像 3.创建Redis配置文件 4.创建Redis容器并启动 5.查看Redis是否运行 6.进入Redis容器 7.退出容器 8.Redis 配置文件修改 9.进入有密码的Redis控制台 Docker如果想安装软件 , 必须先到 Docker 镜像仓库下载镜像. Docker 镜像仓库 Docker 安装Redis 1.寻找Redis镜像 在Docker镜像仓库寻找Redis镜像 Docker 下载Redis镜像

  • docker安装redis并挂载到本地的详细教程

    1.拉取redis镜像 docker pull redis 2.先随便跑起来看下版本号信息 docker run -d -p 6379:6379 --name redistest redis 找到run起来的容器,或者直接用我们自己起的名字操作 3. 看到对应的版本号6.2到官网中下载对应的配置文件 redis 官方配置文件下载地址 4. 创建需要挂载的文件夹名称 mkdir -p /opt/myredis/conf /opt/myredis/data 5.将配置文件用工具上传到conf文件下

  • docker安装redis并以配置文件方式启动详解

    更新 最近发现服务器被挖矿病毒入侵了 很有可能是因为redis没有设置密码的原因! 1.获取redis镜像 docker pull redis 指定版本号: docker pull redis:4.0.9 不加版本号默认获取最新版本,也可以使用 docker search redis 查看镜像来源 2.查看本地镜像 docker images 3.然后启动容器,做映射 ①创建配置文件目录存放redis.conf,文件从官网下载. ②创建文件夹,新建配置文件贴入从官网下载的配置文件并修改 mkdi

  • linux环境部署及docker安装redis的方法

    安装步骤 1. 安装Redis 通过docker search redis和docker pull redis下载redis镜像 2. 新建挂载配置文件夹 新建data和conf两个文件夹,位置随意. mkdir -p /root/docker/redis/data mkdir -p /root/docker/redis/conf 注:因为 redis 默认配置你会发现只能够本地连接,不能进行远程访问,使用 Redis Desktop Manager连接都会报错,因此需要手动挂载 redis 配

  • docker安装redis设置密码并连接的操作

    redis是一款分布式缓存服务,对于大型的系统开发以及性能优化缓存也是必不可少的一种手段,这时候redis就因此而生,由于redis是将数据缓存到内存条中的,所以它的读取速度和写入速度都是很快的,传统的像关系型数据库都是在磁盘所以如果对于特别大的数据量的筛选和查询就很慢了,这无疑影响使用我们系统的用户. redis的安装也是十分的简单,我们依然使用docker安装redis 1.在docker 仓库下载redis #在docker仓库搜索redis docker search redis #下载

  • Docker安装Redis配置远程连接及踩坑

    目录 1. 安装Redis 2. 新建挂载配置文件夹 3. 增加配置文件 redis.conf 4. 创建redis容器并启动 5. 启动成功,查看状态 6. 容器内部连接进行测试 7. 使用Redis Desktop Manager客户端进行连接 8. 小结 1. 安装Redis 通过docker search redis和docker pull redis下载redis镜像 2. 新建挂载配置文件夹 因为 redis 默认配置你会发现只能够本地连接,不能进行远程访问,使用 Redis Des

  • Docker安装Redis并使用Another Redis Desktop Manager连接的方法

    目录 Redis简单介绍 查看可用的 Redis 版本 拉取最新版的Redis镜像 创建并运行一个Redis容器和设置链接密码 验证Redis是否安装成功 参考文章: Redis简单介绍 Redis全称是Remote DIctionary Service,即远程字典服务.Redis 是一个使用C语言编写的.开源的(遵守 BSD 协议).高性能的.支持网络.可基于内存亦可持久化的日志型.Key-Value的NoSQL数据库. 查看可用的 Redis 版本 访问DokcerHub中的Redis镜像库

  • Docker安装Redis并介绍可视化客户端进行操作

    1 简介 Redis是使用ANSI C语言开发的基于Key-Value的高性能NoSQL数据库,在解决高并发.高可用等一系列问题中,它扮演着重要的角色.它的优势主要有: 速度快.持久化.原子性.数据结构丰富.多语言支持. 本文将简单介绍如何通过Docker安装Redis,并简单使用与操作. 2 Docker安装与使用 2.1 Docker安装 拉取Redis镜像,选择目前最新的稳定版本5.0.8: $ docker pull redis:5.0.8 建议配置成阿里云的镜像,速度会快很多.拉取成功

随机推荐