1 | !/bin/bash |
参考 https://blog.csdn.net/qq_41814635/article/details/82256970
1 | #!/bin/bash |
参考 https://blog.csdn.net/qq_41814635/article/details/82256970
Nginx日志格式如下:
1 | log_format main '$remote_addr - $remote_user [$time_local] "$request" ' |
实际日志如下:
1 | [work@iqg-yyq2 ~]$ head /data/logs/nginx/iqg_api_v5.access.log |
最后一行为响应时间.但是是个字符串,还不能直接用awk来统计
下面这个脚本用来统计响应时间:
1 |
|
下面是统计iqg_api_v5.access.log这个日志响应时间超过1秒的记录
1 | [work@iqg-yyq2 ~]$ ./loganalysis.sh /data/logs/nginx/iqg_api_v5.access.log 1 |
查看最终结果:
1 | work@iqg-yyq2 ~]$ head slowtime.txt |
1 | #!/bin/bash |
docker compose 定义并且运行多个docker容器.使用YAML风格文件定义一个compose文件.利用compose文件创建和启动所有服务.
使用docker compose基本只需要3个步骤
下面文档均可以在docker-compose官方找到详细资料:docker-compose
docker镜像是一个只读的Docker容器模板.含有启动docker容器所需的文件系统结构以及内容.因此是启动一个容器的基础.docker镜像的文件内容以及一些运行docker容器的配置文件组成了docker容器的静态文件运行环境—rootfs.
可以这么理解,docker镜像是docker容器的静态视角.docker容器是docker镜像的运行状态
1.rootfs
rootfs是docker容器的根目录.如:/dev,/proc,/bin,/etc …….传统的Linux容器操作系统内核启动时,首先挂载一个只读(read-only)的rootfs.当系统检测到完整性后,再将其切换到读写(read-write)模式.而在docker架构中.也沿用了Linux内核的启动方法.在docker为容器挂载rootfs时,将rootfs设置为只读模式,挂载完毕后,在已有的只读rootfs上再挂载一个读写层.
读写层位于docker容器文件系统的最顶层.下面可能挂载了多个只读层.
一.创建并启动容器
1 | docker create -it 镜像名:tag |
1 | docker ps -a |
1 | docker ps -qa |
1 | docker start container_id |
1 | docker run -it 镜像名:标签 COMMAND |
overlay网卡在多个docker宿主机之间创建一个分布式的网络,允许多个容器安全通信.
当初始化一个swarm集群,或者加入docker宿主机到一个swarm集群中.Docker会在该宿主机上创建2个网络:
overlay网络的创建方式和bridge一样.也是docker network create
命令
一个swarm是一组运行docker服务器的的集群,docker服务器可以是物理机也可以是虚拟机.
swarm manager可以使用多种策略来运行容器.比如”emptiest node”—部署容器到压力最小的服务器上,或者”global”—确保每台服务器都只允许一个容器实例.你可以在Compose文件中指示swarm manager去选择何种策略
swarm managers是swarm进群中唯一可以执行命令,或者授权其他服务器以”workers”身份加入swarm集群的服务器.
试验环境:
1.10.0.0.50 —swarm manager
2.10.0.0.12 —worker 节点
本节介绍docker基础网络概念.以便能认识和利用各种不同的网络类型功能.
docker的网络支持插件化,驱动化定制.有一些网络驱动已经默认集成到docker中.docker网络主要有以下类型
一个stack是一组共享依赖包的多个相关的services,并且可以编排和扩展.其实从第4小节开始,在利用compose文件部署app时,就已经开始一直使用stack.但是还只是运行在一个单一服务器的单一service.
现在,你可以学习在多个服务器上,运行多个相关的services.
1 | version: "3" |