Docker部署redis集羣以及運行項目

1、安裝docker(阿里雲)


CentOS安裝docker

配置阿里雲Docker Yum源

#Set up repository
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#Use Aliyun Docker
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安裝指定版本

sudo yum install docker-ce-18.03.0.ce

啓動Docker服務

systemctl enable docker
systemctl start docker

Ubuntu安裝阿里雲docker

Ubunru支持腳本自動安裝docker

crul -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun

注意:使用阿里雲安裝,安裝過了不能再次通過腳本安裝,要把之前的刪掉,再更新一次腳本就自動升級了。

配置docker鏡像加速器

請在 /etc/docker/daemon.json中寫入如下內容(如果文件不存在請新建該文件夾)

{
 registry-mirros":[
  “https://registry.docker-cn.com
  ]
}

注意一定要保證該文件符合Json規範,否則docker將不能啓動

2、搭建Redis集羣

  • docker拉取redis鏡像

docker pull redis
#檢查是否安裝成功
docker images

安裝redis成功:
Redis安裝成功

  • 構建Redis一主二從哨兵機制

#創建redis目錄
mkdir redis
#進入目錄
cd redis


配置docker-compose.yml文件

version: ‘2’
services:
  master:
  image: redis
  container_name: redis-master
  ports:
     - 6379:6379
 slave1:
  image: redis
  container_name: redis-slave-1
  ports:
    - 6380:6379
  command: redis-server --slaveof redis-master 6379
 slave2:
  image: redis
  container_name: redis-slave-2
  ports:
     - 6381:6379
  command: redis-server --slaveof redis-master 6379


啓動redis服務

docker-compose up -d
#查看啓動結果
docker ps

啓動成功:

在這裏插入圖片描述

配置 Redis-sentinel客戶端監控
  • 1、編寫docker-compose.yml配置文件

version: ‘2’
services:
 sentinel1:
  image: redis
  container_name: redis-sentinel-1
  ports:
    -26379:26379
  command: redis-sentinel /docker/sentinel/sentinel.conf
  volumes:
     - ./sentinel1.conf:/docker/sentinel/sentinel.conf
 sentinel2:
  image: redis
   container_name: redis-sentinel-2
  ports:
    - 26380:26379
  command: redis-sentinel /docker/sentinel/sentinel.conf
  volumes:
     - ./sentinel2.conf:/docker/sentinel/sentinel.conf
 sentinel3:
  image: redis
  container_name: redis-sentinel-3
   ports:
    - 26381:26379
  command: redis-sentinel /docker/sentinel/sentinel.conf
   volumes:
     - ./sentinel3.conf:/docker/sentinel/sentinel.conf

  • 2、編寫sentinel.conf配置文件

port 26379
dir /tmp
#自定義集羣名,其中127.0.0.1爲redis-master的ip,6379爲redis-master的端口,2爲最小投票數(因爲有3臺sentinel所以可以設置成2)
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes

啓動redis-sentinel

docker-compose up -d

啓動成功如下圖所示映射到了26379端口

在這裏插入圖片描述
進入其中一臺sentinel

docker exec -it redis-sentinel-1 /bin/bash

連接redis 26379端口

redis-cli -p 26379
#查看sentinel信息
sentinel master mymaster

sentinel部署成功
在這裏插入圖片描述

3、 上傳並啓動項目

  • 配置redis-sentinel
    這是我jar包存放的目錄
    在這裏插入圖片描述
寫超級簡單版本的 dockerfile 文件

#jdk 是一個已有的包含 jdk 的鏡像

FROM java:latest

#作者簽名

MAINTAINER Xurent

#簡化 jar 的名字路徑 (#:表示註釋掉)

ADD vr-office-0.0.1-SNAPSHOT.jar /app.jar

#執行 java -jar 命令 (CMD:在啓動容器時才執行此行。RUN:構建鏡像時就執行此行)

CMD java -jar /app.jar

#設置對外端口爲 8080

EXPOSE 8080
  • 通過dockerfile 文件生成本工程的鏡像:

docker build -t vr-office .

此行命令最後有一個點,表示使用當前上下文中的 dockerfile 文件(上圖中當前路徑下綠色的那個dockerfile) 。
docker images 查看已有鏡像docker build -t vr-office .構建鏡像,-t :給鏡像取名爲 vr-office 。

構建鏡像成功
在這裏插入圖片描述

  • 通過鏡像啓動容器

docker run -d -p 8080:8080–name vr vr-office

#-d 後臺運行、
#最後一個 gentle 是引用的鏡像的名字、
#–name jy_gentle 給容器取名爲 jy_gentle (取名參數前面是兩短橫線)、
#-p 8080:8080端口映射,注意是小寫 p
#前一個 8080是對外瀏覽器上訪問的端口,後一個 8080是容器內工程本身的端口,兩者可不一樣

在這裏插入圖片描述
通過命令看到docker部署項目已經成功,我們通過瀏覽器訪問一下驗證是否成功

在這裏插入圖片描述

成功訪問到接口文檔頁面說明部署成功了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章