多伺服器使用Docker設定一主一從三哨兵redis(完整)
阿新 • • 發佈:2020-11-10
本來應該續之前那篇部落格[Docker配置redis哨兵模式——多伺服器·上](https://www.cnblogs.com/lan-blue/articles/13929427.html)寫一個下篇的,但是忽然意識到應該將必要的環境打包為一個基礎映象,在此基礎上建立與redis有關的映象,這樣既能夠快速打包,又能夠高度複用程式碼。
所以本篇實際上相當於一個完整的多伺服器使用Docker來部署Redis哨兵模式的過程。
#### 目錄
1. 伺服器條件
2. 安裝Docker
3. 製備基礎映象
4. 配置redis主從節點
5. 哨兵節點
#### 伺服器條件
因為我的伺服器又是新租(日租)的,所以要重新恢復一下。
三臺伺服器(因為需要至少三個哨兵保證安全性)
- 伺服器1:123.57.234.161
- 伺服器2:123.56.85.138
- 伺服器3:8.131.68.191
- 埠號7000、17000已在安全組上放行(阿里雲)
- 環境:centos8.0
#### 安裝Docker
逐行執行以下指令:
```
# 1. 更新編譯環境
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設定映象的倉庫,推薦使用國內的映象,比較快
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 3.4 更新yum軟體包索引,功能是將軟體包快取在本地一份
yum makecache
# 3.5 安裝docker相關的 docker-ce 社群版
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 啟動docker
systemctl start docker
# 3.8 設定為後臺啟動
systemctl enable docker
# 3.9 使用docker version檢視是否按照成功
docker version
# 3.10 測試(可以不做)
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
```
#### 製備基礎映象
docker倉庫中的centos映象非常簡單,缺少一些功能,不方便我們安裝和除錯,所以我們把與redis本身無關但有助於我們使用的部分打包成一個常用的基礎映象。
主要安裝的是vim編輯器和procps(檢視容器內執行的程序)所以建立一個目錄為basecentos,在其中建立並編寫Dockerfile如下:
```
# 建立Dockerfile
vi Dockerfile
# 以下所有程式碼為Dockerfile的內容
FROM redis
MAINTAI