一止长渊

docker新建redis容器

N 人看过
字数:530字 | 预计阅读时长:2分钟

1. 创建挂在目录文件

预先创建好 redis.conf 文件
cd /mydata
mkdir -p redis/conf
cd redis/conf
touch redis.conf
后面的 redis-server /etc/redis/redis.conf 为 redis 的启动命令

2. 创建容器

docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf

3. 使用 redis 容器利用 redis-cli 连接,而不是使用控制台/bin/bash

docker exec -it redis redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set a 'test'
OK
127.0.0.1:6379> get a
"test"

4.redis 持久化

由于 redis 是使用内存存储,如果上述第三步之后重启 redis 容器,就 get 不到 a 的值了

[root@CentOS1 conf]# docker exec -it redis redis-cli
127.0.0.1:6379> get a
(nil)
127.0.0.1:6379>

上面我们把 redis 的配置文件挂载到了容器外,这时候起到了作用
我们修改 redis.conf 文件,输入一下,保存即可(简写就是 Redis 中的 AOF 持久化方式,Redis 持久化分为 RDD 和 AOF,前者是写数据到磁盘,后者是记录操作到操作日志)

appendonly yes

5. 测试是否持久化

[root@CentOS1 conf]# docker restart redis
redis
[root@CentOS1 conf]# docker exec -it redis redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> get a
(nil)
127.0.0.1:6379> set a 'test'
OK
127.0.0.1:6379> get a
"test"
127.0.0.1:6379> exit;
(error) ERR unknown command `exit;`, with args beginning with:
127.0.0.1:6379> exit
[root@CentOS1 conf]# docker restart redis
redis
[root@CentOS1 conf]# docker exec -it redis redis-cli
127.0.0.1:6379> get a
"test"
  1. redis desktop 工具连接 redis

首先需要在 centos 中防火墙中开放容器映射到主机的端口 6379(就是-p 前面的是 centos 虚拟机端口,后面为容器端口)

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT

截屏2021-03-11 22.11.28.png
redis 官方 redis.conf 配置文档 -》 https://redis.io/topics/config -》https://raw.githubusercontent.com/redis/redis/6.0/redis.conf

  1. 容器自启动
# 让docker随虚拟机自启动
sudo enable docker
# 让docker内容器随虚拟机启动就启动
sudo docker update redis --restart=always
sudo docker update mysql --restart=always

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。