使用Docker安裝部署redis(配置文件啓動)

1、安裝Docker

本人電腦爲mac,直接下載docker dmg文件redis

2、獲取redis鏡像

docker search redis

docker pull redis:latest

docker images

3、建立容器

一、新建一個redis目錄,用於存放redis.conf

mkdir onlineinternship/redis
cd redis

二、下載redis官方配置文件

redis配置文件docker

三、修改配置項

bind 127.0.0.1 #註釋掉這部分,這是限制redis只能本地訪問

protected-mode no #默認yes,開啓保護模式,限制爲本地訪問

daemonize no#默認no,改成yes意爲以守護進程方式啓動,可後臺運行,除非kill進程,改成yes會使配置文件方式啓動redis失敗

databases 16 #數據庫個數(可選),我修改了這個只是查看是否生效。。

dir  ./ #輸入本地redis數據庫存放文件夾(可選)

appendonly yes #redis持久化(可選)

logfile "access.log"

requirepass 123456(設置成你本身的密碼)

protected-mode 是在沒有顯示定義 bind 地址(即監聽全網斷),又沒有設置密碼 requirepass
時,protected-mode 只容許本地迴環 127.0.0.1 訪問。
也就是說當開啓了 protected-mode 時,若是你既沒有顯示的定義了 bind 監聽的地址,同時又沒有設置 auth 密碼。那你只能經過 127.0.0.1 來訪問 redis 服務。shell

四、建立並命名一個叫作myredis的容器

docker run \
-p 6379:6379 --name myredis \
-v/Users/bochenghu/onlineinternship/redis/redis.conf:/etc/redis/redis.conf \
-v /Users/bochenghu/onlineinternship/redis/data:/data:rw \
--privileged=true -d redis redis-server /etc/redis/redis.conf \
--appendonly yes

參數解釋說明:數據庫

  • -p 6379:6379 端口映射:前表示主機部分,:後表示容器部分。
  • --name myredis 指定該容器名稱,查看和進行操做都比較方便。
  • -v 掛載配置文件目錄,規則與端口映射相同。
    爲何須要掛載目錄:我的認爲docker是個沙箱隔離級別的容器,這個是它的特色及安全機制,不能隨便訪問外部(主機)資源目錄,因此須要這個掛載目錄機制。
    例: -v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf 容器 /etc/redis/redis.conf 配置文件 映射宿主機 /usr/local/docker/redis/redis.conf。 會將宿主機的配置文件複製到docker中
    重要: 配置文件映射,docker鏡像redis 默認無配置文件。
  • -v 掛在數據卷
    /Users/bochenghu/onlineinternship/redis/data:/data:rw
    映射數據目錄 rw 爲讀寫
  • -d redis 表示後臺啓動redis
  • redis-server /etc/redis/redis.conf 以配置文件啓動redis,加載容器內的conf文件,最終找到的是掛載的目錄/usr/local/docker/redis/redis.conf
    重要: docker 鏡像redis 默認 無配置文件啓動
  • --appendonly yes 開啓redis 持久化安全

    五、查看活躍的容器

    # 查看活躍的容器
    docker ps
    # 若是沒有 myredis 說明啓動失敗 查看錯誤日誌
    docker logs myredis
    # 查看 myredis 的 ip 掛載 端口映射等信息
    docker inspect myredis
    # 查看 myredis 的端口映射
    docker port myredis

    4、外部訪問redis容器服務

    # redis-cli 訪問
    docker run -it --link myredis:redis --rm redis redis-cli -h redis -p 6379
    # -it 交互的虛擬終端
    # --rm 退出是刪除此容器

    或者使用 shell 登陸容器內操做bash

    docker exec -it myredis bash
    redis-cli

    配置完成app

    5、主從配置

    新建一個redis-slave容器(同新建redis)ui

    docker run -p 6380:6380 --name redis-slave -v /Users/bochenghu/onlineinternship/redisSlave/redis.conf:/etc/redis/redis.conf -v /Users/bochenghu/onlineinternship/redisSlave/data:/data:rw --privileged=true -d redis redis-server /etc/redis/redis.conf --appendonly yes

    查看redis master的內部IP
    imagespa

    修改 redis-slave 的配置文件
    # 主地址
    replicaof 172.17.0.2 6379
    # 主認證
    masterauth hubocheng

    重啓redis-slaverest

    docker restart redis-slave

    登陸 redis master 使用 info 命令查看從的狀態

若是配置不成功記得檢查 redis master 的 bind 和 protected-mode 的設置,看下有沒有監聽內網地址,不然 redis-slave 沒辦法經過 redis master 的地址作數據同步
image登錄redis master後使用info,顯示主從關聯成功

相關文章
相關標籤/搜索