Docker部署redis集群以及运行项目

Docker学习:部署redis集群以及运行项目

  • 1、安装docker(阿里云)
          • CentOS安装docker
          • Ubuntu安装阿里云docker
          • 配置docker镜像加速器
  • 2、搭建Redis集群
          • 配置 Redis-sentinel客户端监控
  • 3、 上传并启动项目
          • 写超级简单版本的 dockerfile 文件
            • FROM java:latest
            • MAINTAINER Xurent
            • ADD vr-office-0.0.1-SNAPSHOT.jar /app.jar
            • CMD java -jar /app.jar
            • EXPOSE 8080
      • 成功访问到接口文档页面说明部署成功了

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

启动成功:

Docker部署redis集群以及运行项目_第1张图片

配置 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端口

Docker部署redis集群以及运行项目_第2张图片
进入其中一台sentinel

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

连接redis 26379端口

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

sentinel部署成功
Docker部署redis集群以及运行项目_第3张图片

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部署redis集群以及运行项目_第4张图片

  • 通过镜像启动容器

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

#-d 后台运行、
#最后一个 gentle 是引用的镜像的名字、
#–name jy_gentle 给容器取名为 jy_gentle (取名参数前面是两短横线)、
#-p 8080:8080端口映射,注意是小写 p
#前一个 8080是对外浏览器上访问的端口,后一个 8080是容器内工程本身的端口,两者可不一样

Docker部署redis集群以及运行项目_第5张图片
通过命令看到docker部署项目已经成功,我们通过浏览器访问一下验证是否成功

Docker部署redis集群以及运行项目_第6张图片

成功访问到接口文档页面说明部署成功了

你可能感兴趣的:(docker)