linux用docker安装redis

本文介绍在基于一个新的linux服务器条件下如何安装redis

一、安装docker前准备

1.1 检查内核版本,因为docker需要内核版本大于3.1以上

uname -r

在这里插入图片描述
1.2 这里采用yum工具安装docker,所以安装yum

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

1.3 设置docker镜像源位阿里云

yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

二、安装docker

可跳过,删除之前的redis

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

2.1 安装docker社区版本

yum install -y docker-ce

2.2 因为docker需要监听端口,所以需要关掉防火墙

# 关闭防火墙
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
# 查看是否关闭防火墙
systemctl status firewalld

2.3 启动docker

# 启动docker服务
systemctl start docker 
# 停止docker服务
systemctl stop docker 
# 重启docker服务
systemctl restart docker  

2.4 检查docker安装是否成功

# 查看docker版本,两种命令都可以
docker -v
docker version

2.5 配置镜像加速
2.5.1 创建放置加速文件的文件夹,文件夹的路径可以根据自己的情况进行选择

sudo mkdir -p /etc/docker

2.5.2 配置镜像加速文件

sudo tee /etc/docker/daemon.json <<-'EOF'
	{
	  "registry-mirrors": ["https://akchsmlh.mirror.aliyuncs.com"]
	}
EOF

2.6 重新加载配置的加速文件

sudo systemctl daemon-reload

2.7 重启docker

sudo systemctl restart docker

三、安装redis

3.1 搜索redis镜像

# docker serach <镜像名>
docker search redis

3.2 拉起redis镜像 如果不输入版本号,则会默认拉取最新版本latest

# docker pull <镜像名>:<版本号>
docker pull redis

3.3 挂载redis的配置文件,以配置文件方式启动redis容器
3.3.1 建立放置配置文件的文件夹的,文件夹的路径根据自己的情况选择

mkdir -p /home/redis/myredis

3.3.2 在3.3.1的文件夹下在建立一个名为data的文件夹

mkdir -p /home/redis/myredis/data

3.3.3 上传配置文件到刚刚上传的3.3.1的文件夹下,配置文件在最后
3.4 启动redis容器

docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /home/redis/myredis/myredis.conf:/etc/redis/redis.conf -v /home/redis/myredis/data:/data -d redis redis-server /etc/redis/redis.conf  --appendonly yes  --requirepass 123456

启动命令讲解

--restart=always 代表总是开机启动
--log-opt 代表日志方面
-p 6379:6379 代表将6379端口挂载出去
--name myredis 代表给容器取一个名字
-v /home/redis/myredis/myredis.conf:/etc/redis/redis.conf 代表将自己上传的配置文件和redis的配置文件挂载在一起
-v /home/redis/myredis/data:/data 将数据挂载在一起
-d redis 代表后台启动
redis-server /etc/redis/redis.conf 代表以配置文件启动redis,加载容器内的conf文件,因为文件挂载,最终找到上面自定义的配置文件
--appendonly yes 开启aof持久化
--requirepass 123456 设置密码,docker内部连接的话,此密码没有效,用于对外开放

3.5 测试是否启动成功
3.5.1 查看启动的了容器

# 查看所有活着的容器
docker -ps 
# 查看指定容器名的活着的容器,myredis是创建的容器的名字,根据自己创建的名字进行输入
docker -ps -a | grep myredis

3.5.2 查看容器运行日志

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

3.5.3 内部连接,命令为 docker exec -it <容器名> /bin/bash

# 这里直接启动客户端
docker exec -it myredis redis-cli

四、卸载redis

既然安装了,那么卸载的方法也要简单讲解一下
4.1查看所有在运行的容器

docker ps -a

4.2 停止运行的Redis

# docker stop <容器名>
docker stop myredis

4.3 删除容器

# docker rm <容器名> 
docker rm myredis

4.4 查看所有的镜像

docker images

4.5 删除镜像

# docker rmi <镜像id>
docker rmi 739b59b94569

五、配置文件

# 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

# 设置 Redis 连接密码
requirepass 123456

# 当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能
timeout 0

tcp-keepalive 300

# 是否以守护进程的方式运行 yes是启用守护进程,no为不是
daemonize no

supervised no

# 当redis以守护进程的方式运行时,默认把pid先写指定文件
pidfile /var/run/redis_6379.pid

# 指定日志记录级别,Redis 总共支持四个级别:debug、verbose、notice、warning,默认为 verbose
loglevel notice

# 日志记录方式,默认为标准输出,如果redis以守护进程方式运行,这里又设置为标准输出,日志则将为发送给dev/null
logfile ""

设置数据库的数量,默认数据库为 0
databases 30

always-show-logo yes

#  900 秒(15 分钟)内有1个更改,则保存快照
save 900 1
#  300 秒(5 分钟)内有10个更改,则保存快照
save 300 10
#  60 秒(1 分钟)内有10000个更改,则保存快照
save 60 10000

stop-writes-on-bgsave-error yes

# 指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大
rdbcompression yes

rdbchecksum yes

# 指定本地数据库文件名,默认值为 dump.rdb
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

# 指定是否在每次更新操作后进行日志记录,也就是是否开启aof日志备份,默认为no
appendonly yes

# 指定更新日志文件名,也就是aof日志的文件名
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

六.参考文章

安装docker:

https://blog.csdn.net/m0_59196543/article/details/124749175

安装redis

https://blog.csdn.net/weixin_45821811/article/details/116211724

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐