1

一、基本介绍

  • Docker 是一个开源的应用容器引擎,参考链接:【docker使用安装教程
  • Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 的 NoSQL 数据库,并提供多种语言的 API。

  本文将介绍docker上安装redis容器的详细过程。

二、前期准备

  安装docker,参考链接:不同操作系统的docker方式

我的是centos操作系统,直接执行命令:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun安装即可

三、docker安装redis

参考链接:
Docker 安装 Redis - 菜鸟教程
史上最详细Docker安装Redis (含每一步的图解)实战

3.1 redis镜像拉取

  1. 查看可用的redis版本,执行命令:docker search redis
    1
  2. 拉取Redis镜像:从Docker Hub上获取Redis官方镜像,执行命令:docker pull <镜像名称>:<版本号>
# 示例-默认拉取官方的最新版本的镜像
docker pull redis

1
3. 查看本地redis镜像,执行命令: docker images
1

3.2 Docker挂载redis配置文件

  将redis的配置文件进行挂载,以配置文件方式启动redis容器

挂载:将宿主机的文件和容器内部目录相关联,相互绑定,在宿主机内修改文件的话也随之修改容器内部文件

挂载文件的位置可以自己随便选择

1. 挂载redis的配置文件:redis.conf
(1) 建立配置文件放置目录,执行命令:mkdir 目录/redis/conf/
(2) 生成配置文件,执行命令:touch redis.conf
(3) 写入内容:redis.conf的标准文件在redis官网也可以找到
1
文件内容:

# 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

2. 挂载redis的持久化文件
建立数据文件放置目录,执行命令:mkdir 目录/redis/data/
2

3.3 启动redis容器

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

参数说明:
1.-restart=always 总是开机启动
2.-log 记录日志
3.-p 端口映射
4.-name 容器名
5.-v 数据卷挂载
6.-d redis 后台启动redis
7.redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录 /etc/redis/redis.conf,也就是linux下的 /home/redis/myredis/myredis.conf
8.-appendonly yes 开启持久化
9.-requirepass 123456 设置密码

1

简单的启动命令示例:docker run --name myredis -p 6379:6379 -d redis

关闭容器命令:docker stop <容器名>
示例:docker stop myredis
1

3.4 验证Redis容器是否正常运行

  1. 查看容器的运行信息,验证Redis容器是否正常运行:docker ps
    1

查看指定容器状态:docker ps -a | grep myredis
1

  1. 查看容器运行日志:docker logs --since 30m <容器名>

此处 --since 30m 为查看此容器30分钟之内的日志情况

执行:docker logs --since 30m myredis
2

  1. 容器内部连接测试:docker exec -it <容器名> /bin/bash
#示例
docker exec -it myredis redis-cli

1

四、Docker删除Redis容器

  1. 查看所有在运行的容器:docker ps -a
  2. 关闭容器:docker stop <容器名>
  3. 删除容器:docker rm <容器名>

五、Docker删除Redis镜像

  1. 查看全部镜像 命令:docker images
  2. 删除镜像 命令 :docker rmi <容器 id>
Logo

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

更多推荐