介绍
本文介绍安装docker redis
首先要在linux上安装好docker
docker redis网址:
https://hub.docker.com/_/redis/?tab=description
Dockerfile:
https://github.com/docker-library/redis/blob/3a0b4f1d370e4efd30a0db32b0e0cf878f3133d3/6.0/Dockerfile
拉取redis6.0镜像
docker pull redis:6.0
创建文件夹和文件
创建docker_redis6.0文件夹
在该文件夹内创建其他文件夹和存放文件
mkdir docker_redis6.0
创建redis数据文件夹
在 docker_redis6.0 文件夹内,创建redis数据文件夹,用于保存数据,避免数据过大,导致容器文件增大
mkdir data
创建redis配置文件夹
在 docker_redis6.0 文件夹内,创建redis配置文件夹,用于存放配置文件
mkdir conf
创建redis日志文件夹(有坑)
在 docker_redis6.0 文件夹内,创建redis日志文件夹,用于存放log文件,便于查看日志
mkdir logs
注意:redis生成log文件时,无法创建文件夹,即:只能在已经存在的文件夹中生成log文件
创建redis日志文件(有坑)
注意:docker redis无法生成log文件
touch redis.log
修改文件权限,否则docker redis无权修改文件
chmod 666 redis.log
redis配置文件
下载redis配置文件
redis必须带配置文件启动
在docker_redis6.0/conf目录下,下载redis配置文件:
wget http://download.redis.io/redis-stable/redis.conf
修改配置文件
注释掉下面行,允许外部ip访问redis
# bind 127.0.0.1
修改端口号(一般不用默认端口号)
port 6379
开启持久化
appendonly yes
配置内存
缓存淘汰策略(未实现)
requirepass 设置永久密码
取消下面注释,设置密码,foobared就是密码
requirepass foobared
创建容器并运行
docker run -p 6379:6379 \
--privileged=true \
-v /root/docker_redis6.0/data:/data \
-v /root/docker_redis6.0/conf/redis.conf:/etc/redis/redis.conf \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v /root/docker_redis6.0/logs:/var/redis_logs \
--name redis6.0 \
-d redis:6.0 redis-server /etc/redis/redis.conf
命令解释:
-p 6379:6379端口映射,:前表示宿主机,:后表示容器--privileged=true:容器拥有root权限--name redis6.0:指定容器名称-v /root/docker_redis6.0/data:/data:挂载数据目录,规则与端口映射相同-v /root/docker_redis6.0/conf/redis.conf:/etc/redis/redis.conf:挂载配置文件-v /root/docker_redis6.0/logs:/var/redis_logs:挂载日志目录,挂载时,容器内目录不存在会自动创建-v /etc/localtime:/etc/localtime:ro \设置系统时间时区-v /etc/timezone:/etc/timezone:ro \设置时区-d:表示后台启动redisredis:6.0:根据镜像redis:6.0创建并运行容器redis-server:执行的命令,redis-server是启动redis服务命令/etc/redis/redis.conf:根据/etc/redis/redis.conf配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/root/docker_redis6.0/conf/redis.conf
查看容器
执行
docker ps
查看redis已经运行了
进入容器bash(可选)
docker exec -it redis6.0 /bin/bash
测试
启动redis客户端,连接该redis服务器