docker超快速安装redis(以配置文件启动)附上几个坑

1.下载好Xshell和Xftp

下载地址

只需要填写一个真实邮箱即可。

2.创建目录 在user下(在别的目录需要管理员权限)

选择用户下面的一个文件,创建redis文件夹,再创建data文件夹用来挂载数据,之后从window系统传入redis.conf文件。(挂载:即将宿主的文件和容器内部目录相关联,相互绑定,在宿主机内修改文件的话也随之修改容器内部文件)

window建立一个文件,直接复制一下内容,文件名称改为redis.conf即可。(版本需要与配置文件相对应,这里是最新版的)

# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#bind 127.0.0.1

protected-mode no

port 6379

tcp-backlog 511

requirepass 000415

timeout 0

tcp-keepalive 300

daemonize no

supervised no

pidfile /var/run/redis_6379.pid

loglevel notice

logfile ""

databases 30

always-show-logo yes

save 900 1
save 300 10
save 60 10000

stop-writes-on-bgsave-error yes

rdbcompression yes

rdbchecksum yes

dbfilename dump.rdb

dir ./

replica-serve-stale-data yes

replica-read-only yes

repl-diskless-sync no

repl-disable-tcp-nodelay no

replica-priority 100

lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no

appendonly yes

appendfilename "appendonly.aof"

no-appendfsync-on-rewrite no

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

aof-load-truncated yes

aof-use-rdb-preamble yes

lua-time-limit 5000

slowlog-max-len 128

notify-keyspace-events ""

hash-max-ziplist-entries 512
hash-max-ziplist-value 64

list-max-ziplist-size -2

list-compress-depth 0

set-max-intset-entries 512

zset-max-ziplist-entries 128
zset-max-ziplist-value 64

hll-sparse-max-bytes 3000

stream-node-max-bytes 4096
stream-node-max-entries 100

activerehashing yes

hz 10

dynamic-hz yes

aof-rewrite-incremental-fsync yes

rdb-save-incremental-fsync yes


3.运行redis

docker run --restart=always  -p 6379:6379 --name redis -v /home/zzc/Downloads/redis/redis.conf:/etc/redis/redis.conf -v /home/zzc/Downloads/redis/data:/data -d redis redis-server /etc/redis/redis.conf  --appendonly yes  --requirepass 123456

  • –restart=always 总是开机启动
  • -p 6379:6379 将6379端口挂载出去
  • –name 容器名字
  • -v 数据卷挂载
  • /home/zzc/Downloads/redis/redis.conf:/etc/redis/redis.conf 将 liunx 路径下的redis.conf 和redis下的redis.conf 挂载在一起。 需要修改
  • /home/redis/redis/data:/data 需要修改
  • -d redis 表示后台启动redis
  • redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录 liunx下的 /home/zzc/Downloads/redis/redis.conf
  • –appendonly yes 开启redis 持久化
  • –requirepass 123456 设置密码

如果出现错误:

Error response from daemon: Conflict. The container name "/redis" is already in use by container "0fd6fbd79a8dbcc033f66328dd7d8fe7091dbd4a349e5c1d945350f496eee4ad". You have to remove (or rename) that container to be able to reuse that name.
#容器名存在

表示容器已经存在

docker ps -a  #查看所有容器(运行和未运行)

发现之前创建过redis容器,并未运行。

docker rm -f $(docker ps -aq)
#删除所有容器

4.测试是否完好运行

docker logs --since 30m myredis
#查看此容器30分钟之内的日志情况

存在错误:

*** FATAL CONFIG FILE ERROR (Redis 6.2.6) ***
Reading the configuration file, at line 624
>>> 'repl-diskless-sync-max-replicas 0'
Bad directive or wrong number of arguments

表示配置文件有问题,版本需要和配置文件相对应

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐