docker自启动redis及redis自定义配置conf

0前言

本人想在docker里部署自定义的redis不过通过docker run -it redis:5.0.5 /bin/bash,在redis容器中没有找到redis的配置文件位置,最后通过查官方文档解决了:https://hub.docker.com/_/redis。

现将自己的部署过程记录如下:

1.通过docker使用redis

通过docker使用redis只要两步。

  • 拉去redis镜像

dockerHub的redis:https://hub.docker.com/_/redis

# 查看redis的镜像 不过我们更加推荐在dockerhub官网上看
docker search redis
# 获取redis5.0.5的镜像
docker pull redis:5.0.5
  • 执行redis镜像
docker run --name some-redis -d redis

这样就启动了

在这里插入图片描述

不过通过docker的学习我们知道redis是需要映射端口的,不然这样的镜像不能交互

所以我们使用

docker run --name some-redis -p 6380:6379 -d redis

-p是将容器内的6379映射到容器外的6380端口,即我们通过访问服务器的6380从而访问redis服务。

如果需要开机启动可以使用-restart always

2.自定义config

不过在docker里自定义配置文件似乎不行。

我们看官方文档怎么说:

docker自启动redis及redis自定义配置conf_第1张图片

简述:如果我们想要一个可以自定义配置的redis,需要使用dockerfile自己做一个镜像。。。

好 我们开搞。

  • 准备工作:准备一个redis.conf文件,进入redis.conf的同级目录

  • 首先我们建立一个Dockerfile文件

# 这里注意d要大写 不然后期需要指定文件名
vim Dockerfile

输入一下内容

# 引入redis 5.0.5的镜像
FROM redis:5.0.5
# 将Dockerfile同级目录文件加入容器内的/usr/local/etc/redis/下建立redis.conf
COPY redis.conf /usr/local/etc/redis/redis.conf
# 默认如果不写就执行/usr/local/etc/redis/下的conf作为配置文件
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
  • 写完Dockerfile建立docker镜像
docker build -t redis-show:1.0 -f Dockerfile .

注意:如果-f默认Dockerfile,如果使用这个名字可以不用写;最后面的.注意不要漏了。

生成完了通过docker images,查看我们的镜像

docker自启动redis及redis自定义配置conf_第2张图片

  • 放好redis.conf

    我们是放在了/home/redis-docker/redisconfig/文件下

  • 启动执行

docker run -v /home/redis-docker/redisconfig/redis.conf:/usr/local/etc/redis/redis.conf -p 6379:6379 --name redisshow redis-show:1.0 redis-server /usr/local/etc/redis/redis.conf 

-v 卷挂载:这里是将主机的/home/redis-docker/redisconfig/redis.conf文件挂载到容器内的/usr/local/etc/redis/redis.conf。这里就是一个自定义配置文件的过程

redis-server /usr/local/etc/redis/redis.conf这里指,执行了redis-server指令,同时配置文件是/usr/local/etc/redis/redis.conf的这个配置文件。

小结:所谓的自定义卷挂载其实就是通过自定义一个容器,产生一个可以读取配置的容器。

docker自启动redis及redis自定义配置conf_第3张图片

采坑:redis启动后自动关闭

在这里插入图片描述

如果使用以上的指令启动以后镜像自动关闭了,那么需要修改配置文件redis.conf里面的:daemonize,改为no。

因为如果是后台启动,docker进项启动以后没有执行任何事儿就会自动关闭。所以这时候redis应该不要在后台启动,而是在前台启动。

这个选项如果是直接部署我们会选择yes即让redis在后台自启动。

docker自启动redis及redis自定义配置conf_第4张图片

你可能感兴趣的:(采坑记录,环境部署)