跳至主要內容

Docker搭建Redis5.0并挂载数据

IT王小二约 622 字...

Docker搭建Redis5.0并挂载数据

作者:IT王小二

博客:https://itwxe.comopen in new window

记录 Docker 搭建 Redis5.0 并挂载数据过程,搭建参考自 Docker Hubopen in new window

一、简单挂载持久化数据

docker run -d -p 6379:6379 --name redis \
-v /itwxe/dockerData/redis/data:/data \
redis:5.0.8 redis-server --appendonly yes

这样仅仅是挂载了数据,Redis 没有密码等配置,任何人都可以连接,如果是服务器在公网那么极度不安全。

于是按照惯例进入容器查找 redis 的配置文件放在哪里,然后配置好挂载即可,结果发现容器内并没有 redis.conf 文件。

Docker Hubopen in new window 中提到,需要自定义 redis.conf 使用 DockerFile 构建镜像。

docker使用自定义配置那件构建redis镜像

二、通过DockerFile构建镜像,指定配置文件启动

1、先去 Redis官网open in new window 下个和镜像版本一致的版本,我的版本是5.0.8,然后解压文件,将 redis.conf 上传到服务器。

2、修改 redis.conf 配置,主要配置如下,根据自己需求修改。

# 修改后台启动, 默认为daemonize no,docker启动默认即可,后台启动会导致容器退出
daemonize no

# 客户端闲置多长时间后断开连接, 默认为0关闭此功能                               
timeout 0

# 设置密码, 默认被注释, 取消注释修改为自定义密码(我的是123456)
requirepass 123456

# 监听ip, 允许访问的ip, 默认为127.0.0.1, 修改为0.0.0.0(允许所有服务器ip访问)或者注释掉
bind 0.0.0.0

# 指定监听端口, 默认为6379, 此处我保持默认
port 6379

# 是否开启AOF持久化,默认为no
appendonly yes

# 修改AOF及RBD存放路径, 默认为./, 修改为/data
dir /data

# 修改log存放路径, 默认为"", 修改为"/data/redis_6379.log"
logfile "/data/redis_6379.log"

3、创建 Dockerfile 文件,添加内容,不知道怎么使用 Dockerfile 怎么使用的可以本站搜索 → DockerFile构建镜像。

FROM redis:5.0.8
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD ["redis-server", "/usr/local/etc/redis/redis.conf"]

4、构建镜像。

docker build -t itwxe/redis:5.0.8 .

构建自定义配置redis镜像

5、启动构建的镜像,并挂载数据。

docker run -d --restart=always -p 6379:6379 --name redis \
-v /itwxe/dockerData/redis/data:/data \
itwxe/redis:5.0.8

可以看到数据正常挂载了。

自定义redis镜像自动

同时可以测试下密码也可以正常连接。

自定义redis容器连接