阅读 41

Docker安装Redis

前言

Mysql安装完成,这里到Redis了。

常规梳理

关于镜像

这里选择redis:5.0.4

关于环境变量

暂无。

关于挂载目录及文件

  • /data:redis持久化目录
  • /usr/local/etc/redis/redis.conf:redis配置文件

关于服务端口

  • 6379

定义文件样例

version: '2'
services:
  redis:
    image: "redis:5.0.4"
    restart: always
    volumes:
      - "/etc/localtime:/etc/localtime:ro"
      - "/docker-workspace/redis/data:/data"
      - "/docker-workspace/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf"
    ports:
      - "6379:6379"
    command:
      - "redis-server"
      - "/usr/local/etc/redis/redis.conf"
复制代码
  • services:服务定义,每个key对应一个服务
  • environment:环境变量定义
  • image:镜像
  • restart:重启策略
    • no,默认策略,在容器退出时不重启容器
    • on-failure,在容器非正常退出时(退出状态非0),才会重启容器
    • on-failure:3,在容器非正常退出时重启容器,最多重启3次
    • always,在容器退出时总是重启容器
    • unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
  • volumes:挂载目录及文件,左边为宿主,右边为容器
  • ports:端口映射,左边宿主,右边容器
  • command:用于覆盖容器启动后默认执行的命令

开始安装

初始化目录

mkdir -p /docker-workspace/redis/data
mkdir -p /docker-workspace/redis/conf
复制代码

添加配置文件

cat <<EOF > /docker-workspace/redis/conf/redis.conf
pidfile /data/redis.pid
port 6379
loglevel notice
logfile /data/redis.log
dbfilename dump.rdb
dir /data
# 密码
requirepass gEwjEHLM
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
EOF
复制代码

添加定义文件

cat <<EOF > /docker-workspace/redis/docker-compose.yml
version: '2'
services:
  redis:
    image: "redis:5.0.4"
    restart: always
    volumes:
      - "/etc/localtime:/etc/localtime:ro"
      - "/docker-workspace/redis/data:/data"
      - "/docker-workspace/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf"
    ports:
      - "6379:6379"
    command:
      - "redis-server"
      - "/usr/local/etc/redis/redis.conf"

EOF
复制代码

运行实例

  • 后台运行实例

    docker-compose -f /docker-workspace/redis/docker-compose.yml up -d
    复制代码

    下面命令可暂时跳过,直接跳到连接验证

  • 停止运行中的实例

    docker-compose -f /docker-workspace/redis/docker-compose.yml stop
    复制代码
  • 开启运行中的实例

    docker-compose -f /docker-workspace/redis/docker-compose.yml start
    复制代码
  • 重启运行中的实例

    docker-compose -f /docker-workspace/redis/docker-compose.yml restart
    复制代码
  • 移出实例

    docker-compose -f /docker-workspace/redis/docker-compose.yml down
    复制代码
  • 非后台运行实例

    docker-compose -f /docker-workspace/redis/docker-compose.yml up
    复制代码

    最常用的是 docker-compose -f docker-compose.yml up -ddocker-compose -f docker-compose.yml down

  • 其他命令查看

    docker-compose -h
    复制代码

连接验证

使用RedisDesktopManager等redis连接工具验证。

Redis常规维护

传统的安装在宿主机上redis,可直接登录主机维护。而使用docker后,会略微有些区别,会多加一步,进入容器。

如果仅启动了一个redis实例,则可以使用如下命令进入容器。

docker exec -it $(docker ps -a | grep redis | awk '{print $1}') bash
复制代码

其实就是:

docker exec -it containerid bash
复制代码

查看容器id命令

docker ps -a
复制代码