Docker配置redis哨兵模式的方法(多服務(wù)器上)
前言
之前學(xué)習(xí)的redis一直是在單一服務(wù)器上運(yùn)行的,而且是直接部署在服務(wù)器上。聽說用docker會(huì)讓配置過程更輕松 (并沒有)這次就在用Docker的基礎(chǔ)上配置Redis一主一從三哨兵。本篇為配置數(shù)據(jù)節(jié)點(diǎn),即一主一從兩個(gè)節(jié)點(diǎn)。
條件
三臺(tái)服務(wù)器(因?yàn)樾枰辽偃齻€(gè)哨兵保證安全性)【可以在阿里云上租幾個(gè)小時(shí)】
- 服務(wù)器1:8.131.78.18
- 服務(wù)器2:8.131.69.106
- 服務(wù)器3:8.131.71.196
- 端口號(hào)7000、17000已在安全組上放行(阿里云)
- 環(huán)境:centos8.0
安裝Docker
逐行執(zhí)行以下指令:
# 1. 更新編譯環(huán)境 yum -y install gcc # 2. 同上 yum -y install gcc-c++ # 3. 安裝docker # 3.1 卸載舊版本 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine # 3.2 安裝需要的安裝包 yum install -y yum-utils # 3.3設(shè)置鏡像的倉(cāng)庫(kù),推薦使用國(guó)內(nèi)的鏡像,比較快 yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 3.4 更新yum軟件包索引,功能是將軟件包緩存在本地一份 yum makecache # 3.5 安裝docker相關(guān)的 docker-ce 社區(qū)版 yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm # 3.6 安裝 yum install docker-ce docker-ce-cli containerd.io # 3.7 啟動(dòng)docker systemctl start docker # 3.8 設(shè)置為后臺(tái)啟動(dòng) systemctl enable docker # 3.9 使用docker version查看是否按照成功 docker version # 3.10 測(cè)試(可以不做) docker run hello-world # 3.11 卸載刪除(僅供參考,本次不做) yum remove docker-ce docker-ce-cli containerd.io rm -rf /var/lib/docker # 4. 配置加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://qdxc3615.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
配置redis主從節(jié)點(diǎn)
我們使用的服務(wù)器是服務(wù)器1和服務(wù)器3(本來(lái)是一主兩從,我把服務(wù)器2關(guān)了)。
TIPS: 對(duì)于xshell可以使用右鍵選擇發(fā)送鍵輸入到所有會(huì)話,這樣就不需要配置兩遍了?;蛘呤褂胹cp語(yǔ)句將配置好的文件共享給其他服務(wù)器:
# scp local_file remote_username@remote_ip:remote_folder scp redis.conf root@58.131.71.196:/blue/redis02
1.首先創(chuàng)建文件夾,注意不要放在home路徑下,否則容易因?yàn)闄?quán)限問題是容器運(yùn)行失敗。我創(chuàng)建的目錄為/blue/redis02,指令比較簡(jiǎn)單:
cd / mkdir blue && cd blue mkdir redis02 && cd redis02
2.創(chuàng)建Dockerfile,Dockerfile是為了加載一些我們需要的環(huán)境。
vi Dockerfile # Dockerfile內(nèi)容如下: # 從基礎(chǔ)鏡像redis繼承 FROM redis MAINTAINER blue<blue@email.com> # 將Dockerfile所在目錄下的文件復(fù)制到容器/usr/local/etc/redis目錄下 COPY redis.conf /usr/local/etc/redis/redis.conf # 安裝一些環(huán)境 RUN apt-get update RUN apt-get install -y vim RUN apt-get install procps --assume-yes VOLUME ["/data"] WORKDIR /etc/redis # 開放端口7000 EXPOSE 7000 # 使用配置文件啟動(dòng) CMD [ "redis-server", "/usr/local/etc/redis/redis.conf"]
3.從官網(wǎng)上下載一個(gè)redis.conf并做如下修改。redis.conf則是redis的一些配置,這個(gè)和單機(jī)的redis一主一從三哨兵的配置基本相同。
# 注釋掉bind 127.0.0.1 # bind 127.0.0.1 port 7000 # 這里如果是yes會(huì)影響使用配置文件啟動(dòng) daemonize no pidfile /var/run/redis_7000.pid # 需要設(shè)置以下兩處密碼,密碼要一致 requirepass testmaster123 masterauth testmaster123 # 修改保護(hù)模式,如果是yes會(huì)導(dǎo)致外部服務(wù)器無(wú)法訪問 protected-mode no # 對(duì)于服務(wù)器3,還需要加上一句,表示是服務(wù)器1的從服務(wù)器 # slaveof 主.機(jī).I.P 端口 slaveof 8.131.78.18 7000
4.保存好以上配置之后可以使用以下語(yǔ)句創(chuàng)建鏡像,這個(gè)過程時(shí)間比較長(zhǎng),需要耐心等待:
# 應(yīng)該用 docker build -t myredis . 比較有辨識(shí)度的,但是作為測(cè)試的時(shí)候就成功了,也不想修改了。這句話是根據(jù)我們的Dockerfile創(chuàng)建一個(gè)新的鏡像??梢园阉鹥ush到倉(cāng)庫(kù)去,這樣下次可以直接拉取。 docker build -t test .
5.使用如下語(yǔ)句啟動(dòng)容器:
# 啟動(dòng)容器 docker run -d -p 7000:7000 --name redis-test test # 以下語(yǔ)句查看運(yùn)行中的容器 docker ps #進(jìn)入容器內(nèi)部 docker exec -it redis-test /bin/bash
6.在容器內(nèi)部可以使用以下語(yǔ)句查看在運(yùn)行的線程:
# 查看運(yùn)行的線程 ps -ef # 使用redis客戶端訪問7000端口 redis-cli -p 7000 # 輸入密碼 auth testmaster123 # 查看信息 info replication # 以下為從節(jié)點(diǎn)返回的信息 # Replication role:slave master_host:8.131.78.18 master_port:7000 master_link_status:up master_last_io_seconds_ago:10 master_sync_in_progress:0 slave_repl_offset:28 slave_priority:100 slave_read_only:1 connected_slaves:0 master_replid:438c700922a30ebbc66ee5c89a176c426924b2a7 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:28 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:28
至此主從節(jié)點(diǎn)配置成功。
到此這篇關(guān)于Docker配置redis哨兵模式(多服務(wù)器上)的文章就介紹到這了,更多相關(guān)Docker配置redis哨兵模式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 基于Docker搭建Redis一主兩從三哨兵的實(shí)現(xiàn)
- 5分鐘教你實(shí)現(xiàn)用docker搭建Redis集群模式和哨兵模式
- 基于Docker實(shí)現(xiàn)Redis主從+哨兵搭建的示例實(shí)踐
- docker搭建redis主從哨兵集群的實(shí)現(xiàn)步驟
- docker搭建redis哨兵集群并且整合springboot的實(shí)現(xiàn)
- 使用Docker配置redis sentinel哨兵的方法步驟
- Docker下Redis集群(主從+哨兵)安裝配置的實(shí)現(xiàn)步驟
- 教你一分鐘搞定docker+redis哨兵模式
- 基于docker的redis主從及哨兵配置方式
- docker安裝Redis高可用實(shí)現(xiàn)一主二從三哨兵
相關(guān)文章
內(nèi)網(wǎng)環(huán)境下registry搭建步驟詳解
這篇文章主要為大家介紹了內(nèi)網(wǎng)環(huán)境下的registry搭建步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Docker容器時(shí)間與宿主機(jī)不一致/宿主機(jī)時(shí)間不同步校驗(yàn)問題
在Docker容器中,若未單獨(dú)配置localtime,可能導(dǎo)致時(shí)間與宿主機(jī)不一致,例如UTC與CST(東八區(qū))相差8小時(shí),解決方法包括在啟動(dòng)時(shí)通過docker run添加時(shí)間參數(shù),使用Dockerfile設(shè)置,或通過docker-compose配置,對(duì)于已運(yùn)行的容器2024-10-10docker中如何將jar包構(gòu)建成鏡像并執(zhí)行
這篇文章主要介紹了docker中如何將jar包構(gòu)建成鏡像并執(zhí)行問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05詳解使用Dockerfile創(chuàng)建帶Apache服務(wù)的CentOS Docker鏡像
本篇文章主要介紹了使用Dockerfile創(chuàng)建帶Apache服務(wù)的CentOS Docker鏡像,具有一定的參考價(jià)值,有興趣的可以了解一下。2016-12-12docker修改容器內(nèi)存大小的實(shí)現(xiàn)方式
我們使用docker時(shí),經(jīng)常會(huì)遇到docker容器使用內(nèi)存大于docker宿主機(jī)內(nèi)存,導(dǎo)致宿主機(jī)奔潰,從而影響其他宿主機(jī)上容器的運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于docker修改容器內(nèi)存大小的相關(guān)資料,需要的朋友可以參考下2022-09-09