docker安装redis(2021-08-18周三)

参考:

写 redis_Dockerfile 文件
# for redis
FROM redis:6.2.5
# the owner for this image
MAINTAINER chenjd

# set time zone
ENV TIME_ZONE=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone
#################################
# for jdk
# do nothing

#################################
# for app path
RUN mkdir -p /home/admin/redis/data
RUN mkdir -p /home/admin/redis/logs
RUN mkdir -p /home/admin/redis/conf

#################################
# for redis conf (实际上外面有-v映射进来,这里可以不要cp)
COPY redis.conf /home/admin/redis/conf/redis.conf
#暴露需要用到的端口,这里的端口是根据你配置的 redis.conf 配置文件中的端口
EXPOSE 6379
#镜像实例启动后执行命令
CMD ["redis-server","/home/admin/redis/conf/redis.conf"]
制作docker镜像
docker build -f redis_Dockerfile -t my_redis .
启动镜像
# 创建映射目录
mkdir -p /home/admin/redis/data
mkdir -p /home/admin/redis/logs
# 千万不要挂载这个目录进去,否则会把里面的 文件覆盖掉
mkdir -p /home/admin/redis/conf
# 把 配置文件拷贝一份到conf下,否则 -v 时会把容器里面的配置文件夹覆盖了
cp redis.conf /home/admin/redis/conf/

# 试一下,这样是否可以
touch /home/admin/redis/logs/redis_6379.log
chmod -R 777 /home/admin/redis
# 启动一个镜像实例
docker run -it --name my_redis --privileged=true -v /etc/localtime:/etc/localtime -v /home/admin/redis/data:/home/admin/redis/data -v /home/admin/redis/logs:/home/admin/redis/logs -v /home/admin/redis/conf:/home/admin/redis/conf -p 6379:6379 --restart unless-stopped -d my_redis:latest
进入Redis容器

docker exec -it my_redis /bin/bash

通过密码进入Redis控制台

redis-cli -h 127.0.0.1 -p 6379 -a 密码

总结一下

  • redis.conf 配置文件设置错误导致的
    1)比如 daemonize yes 跟 docker run -d 冲突,必须为no;
    2)dbfilename 设置时带路径,实际上都在dir目录下
    3)还有 log路径,需要 事先有一个空的log文件在那个目录下,启动才不会报错
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容