记录一次基于docker的网站架构方案

记录一次基于docker的网站架构方案_第1张图片

这个是网站的大概架构

ps:dc监控用于监控容器状态,以及查看容器运行日志,快速启动容器

rancher用于快速升级以及快速部署服务,以及做了一个高可用防止容器宕机(容器需要写docker-compose)

zabbix用于监控linux底层,并且写了邮箱告警,之所以放在底层没用到docker是觉得监控放在被监控服务当中一旦出问题很难排查

当然还用到了nginx做了高可用

只是一个很简单的练笔,因为资源有限用的4g2h所以服务不多

这边只记录下底层架构,网页端就不记录了

下面是搭建步骤,单纯记录不建议复制

 

安装docker

yum install -y docker

查看docker版本

[root@mwc yum.repos.d]# docker version

Client:

 Version:         1.13.1

 API version:     1.26

 

然后更新内核

yum install -y kernel

启动docker

systemctl start docker

 

部署rancher

docker run -d --restart=always -p 8081:8081 rancher/server

记录一次基于docker的网站架构方案_第2张图片

给rancher添加仓库节点

sudo docker run -e CATTLE_AGENT_IP="192.168.200.128"  --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.11 http://192.168.200.128:8080/v1/scripts/2D26D925591E7F49BFBA:1546214400000:R1VFN39Ek5ZL09BIa9aP4KrGJ4

记录一次基于docker的网站架构方案_第3张图片

启动完成登陆查看

记录一次基于docker的网站架构方案_第4张图片

启动tomact服务

docker run --name tomcat -p 8080:8080 -v $ PWD / test :/ usr / local / tomcat / webapps / test - d tomcat 

记录一次基于docker的网站架构方案_第5张图片

将tomact目录挂载到本目录的/test文档下

 

使用脚本安装容器监控软件

记录一次基于docker的网站架构方案_第6张图片

 

安装完成后输入ip+端口进入界面等待一会

 

记录一次基于docker的网站架构方案_第7张图片

记录一次基于docker的网站架构方案_第8张图片

记录一次基于docker的网站架构方案_第9张图片

记录一次基于docker的网站架构方案_第10张图片

 

然后安装nginx作为反向代理和负载均衡器

因为这块我们需要部署到客户电脑所以说采用的是dockerfile打包

其Dockerfile如下:

记录一次基于docker的网站架构方案_第11张图片

 

其weiphp.cluby.cn.conf如下

记录一次基于docker的网站架构方案_第12张图片

 

php环境代码如下

记录一次基于docker的网站架构方案_第13张图片

其docker-compose如下

记录一次基于docker的网站架构方案_第14张图片

 

接下来准备监控部署

部署Prometheus + Grafana

记录一次基于docker的网站架构方案_第15张图片 采用rancher一键部署两个应用

部署zabbix

安装mysql-server

 

记录一次基于docker的网站架构方案_第16张图片

安装zabbix-server-mysql

 

记录一次基于docker的网站架构方案_第17张图片

安装zabbix-web-nginx-mysql

 

记录一次基于docker的网站架构方案_第18张图片

 

 

 

 

#!/bin/bash

 

# zabbix env

# 定义zabbix数据库的库名

export Z_database_name=zabbix

# 新增数据库的用户

export Z_database_user=zabbix

# 上述用户的密码

export Z_database_user_password=zabbix_pwd

# root用户的密码,建议建立好后改掉密码

export Z_database_root_password=root_pwd

# zabbix 网页的端口

export Z_port=80

export Z_name=MyZabbix

export Z_tz=Asia/Shanghai

 

 

 

# cat docker-compose.yml

version: "3"

services:

  mysql-server-for-z:

    image: mysql:5.7

    container_name: mysql-server-for-z

    environment:

      - MYSQL_DATABASE=${Z_database_name}

      - MYSQL_USER=${Z_database_user}

      - MYSQL_PASSWORD=${Z_database_user_password}

      - MYSQL_ROOT_PASSWORD=${Z_database_root_password}

    volumes:

      - "${PWD}/mysql:/var/lib/mysql"

 

  zabbix-server-mysql:

    image: zabbix/zabbix-server-mysql:latest

    container_name: zabbix-server-mysql

    environment:

      - DB_SERVER_HOST=mysql-server-for-z

      - MYSQL_DATABASE=${Z_database_name}

      - MYSQL_USER=${Z_database_user}

      - MYSQL_PASSWORD=${Z_database_user_password}

      - MYSQL_ROOT_PASSWORD=${Z_database_root_password}

    ports:

      - "10051:10051"

    links:

      - mysql-server-for-z:mysql

    depends_on:

      - mysql-server-for-z

记录一次基于docker的网站架构方案_第19张图片

  zabbix-web-nginx-mysql:

    image: zabbix/zabbix-web-nginx-mysql:latest

    container_name: zabbix-web-nginx-mysql

    environment:

      - DB_SERVER_HOST=mysql-server-for-z

      - MYSQL_DATABASE=${Z_database_name}

      - MYSQL_USER=${Z_database_user}

      - MYSQL_PASSWORD=${Z_database_user_password}

      - MYSQL_ROOT_PASSWORD=${Z_database_root_password}

      - ZBX_SERVER_NAME=${Z_name}

      - TZ=${Z_tz}

    ports:

      - "${Z_port}:80"

    links:

      - mysql-server-for-z:mysql

      - zabbix-server-mysql:zabbix-server

    depends_on:

      - zabbix-server-mysql   记录一次基于docker的网站架构方案_第20张图片记录一次基于docker的网站架构方案_第21张图片

 

 

docker日志清理脚本

记录一次基于docker的网站架构方案_第22张图片

docker全自动安装脚本

记录一次基于docker的网站架构方案_第23张图片

 

你可能感兴趣的:(docker,docker的学习笔记)