同福

Rancher v2.5.9使用Dockerfile部署Redis服务的方法【20220715】

介绍

介绍

今天福哥要带着大家学习Rancher部署Redis服务,这个我们还是使用redis:6.0-buster这个镜像作为Redis服务的基础镜像。

rancher替代的是docker-compose,所以无论是rancher还是docker-compose,它们所使用的镜像还是需要自己来维护的。

福哥前面有教给大家使用Dockerfile创建自己的Redis镜像的方法,这里就不再重述了,我们直接在rancher里面使用这个自建的redis6.0这个镜像来搭建redis服务。

镜像

目录

镜像目录结构。

home/topic/2022/0719/11/88589e5bd2614ee6c01fe52b56362f5d.png

Dockerfile

这个福哥写的Dockerfile,大家可以拿去使用。

FROM registry.tongfu.net:5000/redis:6.0-buster

MAINTAINER Andy Bogate
MAINTAINER tongfu@tongfu.net
MAINTAINER http://docker.tongfu.net
MAINTAINER 2021/6/20
MAINTAINER v1.0.0

EXPOSE 6379

# timezone
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone

# data
RUN mkdir -p /usr/local/etc/redis \
&& mkdir -p /var/lib/redis \
&& mkdir -p /var/log/redis
COPY redis.conf /usr/local/etc/redis/redis.conf

# command
CMD ["redis-server", "/usr/local/etc/redis/redis.conf"]

redis.conf

福哥将原始的redis.conf复制出来进行了一些调整,大家可以根据自己的情况配置。

bind 0.0.0.0

protected-mode yes

port 6379

tcp-backlog 511

timeout 0

tcp-keepalive 300

daemonize no

supervised no

pidfile /tongfu.net/env/redis-4.0.10/data/redis.pid

loglevel notice

logfile /var/log/redis/redis.log

databases 16

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 /var/lib/redis/

slave-serve-stale-data yes

slave-read-only yes

repl-diskless-sync no

repl-diskless-sync-delay 5

repl-disable-tcp-nodelay no

slave-priority 100

requirepass tongfu.net

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

appendonly no

appendfilename "appendonly.aof"

appendfsync everysec

no-appendfsync-on-rewrite no

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

aof-load-truncated yes

aof-use-rdb-preamble no

lua-time-limit 5000

slowlog-log-slower-than 10000

slowlog-max-len 128

latency-monitor-threshold 0

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

activerehashing yes

client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

hz 10

aof-rewrite-incremental-fsync yes

部署

名称

名称可以随便起,建议使用英文。

home/topic/2021/1006/22/014d0628d1c5418c42dbf11486fc6cfb.png

数据卷

福哥给redis服务设置了data和logs两个目录,都是映射到了主机目录上面。

创建目录

首先需要在服务器上建立这两个目录,然后设置所有者和分组。

因为redis6.0的镜像的redis用户和redis组的ID都是999,所以这里授权999.999即可。

mkdir -p /data/docker.data/redis/data/
chown 999.999 /data/docker.data/redis/data/
mkdir -p /data/docker.logs/redis/logs/
chown 999.999 /data/docker.logs/redis/logs/

data

添加data目录的映射,将/data/docker.data/redis/data/映射到/var/lib/redis/上面。

home/topic/2021/1006/23/6cbab237e7005e984694b563e9bddda8.png

总结

今天福哥带着大家使用我们前面学习的Dockerfile创建的自定义redis镜像redis6.0在rancher上面部署了redis服务,可以看到这种图形化的管理方式真的是很省心,很简单的。