2.docker部署及使用
[toc]
Docker部署安装Docker使用清华源:https://mirrors.tuna.tsinghua.edu.cn/
123456789101112# 点击问号,进入帮助# 1.如果以前安装过docker先删除yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine# 2.下载docker yum源wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo# 3.将官方源的url改成清华源的urlsed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docke ...
10.Docker容器状态查看
[toc]
docker容器状态查看docker自带的监控命令1234# 命令docker ps # 查看正在运行的容器docker top 容器ID # 查看容器进程docker stats # 查看容器资源占用
有了上面的命令,我们就可以使用zabbix来监控docker容器了,但是问题就是,zabbix-agent的端口,我们在宿主机上只能映射出来一个。
解决方案:
可以映射宿主机上不同的端口
123-p10050:10050 -p10052:10050 -p10053:10050
可以起多块网卡
1234-p10.0.0.81:10050:10050 -p10.0.0.88:10050:10050-p10.0.0.89:10050:10050 -p10.0.0.90:10050:10050
修改不同容器的agent端口
映射容器的相关文件,然后监控宿主机上的对应文件
12345678# 将容器运行的输出内容存放在文件中(docker run -it busybox free -m) > /opt/nginx/mem.in ...
1.Docker入门
[toc]
Docker基本含义Docker包括一个命令行程序、一个后台守护进程,以及一组远程服务。它解决了常见的软件问题,并简化了安装、运行、发布和删除软件。这一切能够实现是通过使用一项UNIX技术,称为容器。
什么是容器?Docker 是Docker.Inc公司开源的,一个基于LXC技术之上构建的Container容器引擎,源码托管在GitHub上,基于Go语言,并基于Apache2.0协议开源Docker是通过内核虚拟化技术(namespace及cgroup等)来提供容器的资源隔离与安全保障等。由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率。
Docker在开发和运维中的优势对于开发和运维人员来说,最梦寐以求的效果可能就是一次创建和配置,之后可以在任意地方、任意时间让应用正常运行,而Docker恰恰可以实现这一中级目标。具体来说,在开发和运维过程中,Docker具有以下几个方面的优势:
1.更快的交付和部署: 使用Docker,开发人员可以使用镜像来快速构建一套标准的开发环境;开发完之 ...
9.Shell编程-case流程控制
[toc]
case语句介绍case … esac 为多选择语句,与其他语言中的 switch … case 语句类似,是一种多分枝选择结构,每个 case 分支用右圆括号开始,用两个分号 ;; 表示 break,即执行结束,跳出整个 case … esac 语句,esac(就是 case 反过来)作为结束标记。
可以用 case 语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。
在某些时候,case要优于if,少写很多判断
case语句格式语法1234567891011121314case 值 in模式1) command1 command2 ... commandN ;;模式2) command1 command2 ... commandN ;;esac
case 工作方式如上所示,取值后面必须为单词 in,每一模式必须以右括号结束。取值可以为变量或常数,匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。
取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。
现实举例 ...
8.Shell编程-循环
[toc]
循环的基本概述循环分类
循环名称
循环含义
使用场景
while循环
当型循环
死循环/有条件的循环/一行一行的读取文件
do until循环
直到型循环,一直循环直到不满足条件
没啥场景,因为有for循环
for循环
通用型
很多场景都可以使用
while循环介绍while循环语法123456789101112131415161718192021222324252627282930313233343536373839# while循环语句## 示例一while <条件表达式>;do cmd1 cmd2done## 示例二while <条件表达式>do cmd1 cmd2done## 示例三while 没有女朋友;do 找到死done## 示例四while 话费充足;do 打电话done # 死循环## 示例一while true;do echo 'hei hei hei'done## 示例二while [ 1 -eq 1 ];do echo 'hei hei hei'd ...
7.Shell编程-函数
[toc]
函数介绍什么是函数函数就是具备某一功能的工具
为什么要使用函数如果不使用函数,那么你的代码:1.程序的组织结构不清晰,可读性差2.代码冗余3.可扩展性差
如何使用函数函数的使用必须遵循的原则:先定义,后调用修理工,事先准备好工具的过程,即,定义函数修理工,遇到应用场景哪来工具就用即函数的调用
函数的语法函数参数 和脚本参数的区别
特殊变量
脚本
函数
$N
脚本的第N个参数
函数的第N个参数
$0
脚本名称
脚本名称
$*/$@
脚本的所有参数
函数的所有参数
$#
脚本传递的参数个数
函数传递的参数个数
函数定义语法1234567891011121314151617181920212223242526# 定义方式一function foo() { cmd1 cmd2 cmd3}# 定义方式二function foo { cmd1 cmd2 cmd3}# 定义方式三foo() { cmd1 cmd2 cmd3}# 解析foo:指函数名,就相当于一个变量名,指向函数的内存地 ...
6.Shell编程-监控状态及实战练习
[toc]
书写脚本常用监控命令
本地检查端口是否开启查看所有端口123456789101112131415161718192021222324# netstat -lntupActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 37809/beam.smptcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 544/rpcbindtcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 38249/ngi ...
5.Shell编程-if流程控制
[toc]
if条件语句if语法单分支123456789101112131415161718# 写法一:if [ ];then cmd1 cmd2fi # 写法二:if [ ]then cmd1 cmd2fi ## 不过单分支,没有必要写if了,直接用条件表达式即可。[ 条件 ] && { cmd1 cmd2}
if语法双分支123456789101112131415161718# 写法一:if [ ];then cmd1 cmd2else cmd1 cmd2fi # 写法二:if [ ]then cmd1 cmd2else cmd1 cmd2fi
if语法多分支12345678910111213141516171819202122232425# 写法一:if [ ];then cmd1 cmd2elif [ ];then cmd1 cmd2else cmd1 cmd2fi # 写法二:if [ ]then cmd1 cmd2elif [ ]then cmd1 cmd2else c ...
4.Shell编程-条件表达式
[toc]
条件表达式条件表达式介绍条件表达式,我们非常的常用,可以说,任何编程语言,都离不开条件表达式,但是每种变成语言的写法都不太一样,在shell中,有一种独特的写法。
条件测试语句条件测试语句,我们又叫做test语句。
格式
介绍
test <条件>
常规判断命令
[[ <条件> ]]
支持运算符和正则的条件表达式
[ <条件> ]
常用条件表达式
文件表达式
表达式
含义
举例
-d
判断目录是否存在
test -d /etc
-f
判断文件是否存在
test -f /etc/hosts
-e
判断是否存在
test -e /etc
-r
判断文件是否存在,并且有read权限
test -r /etc/hosts
-w
判断文件是否存在,并且有write权限
test -w /etc
-x
判断文件是否存在,并且有execute权限
test -x /bin/ls
-s
判断文件是否存在,并且size是否大于0
test -s /etc/passwd
-L
判断文件是否存在,并且 ...
3.Shell编程-运算符
[toc]
运算符号常用运算符号+:加
-:减
*:乘
/:除
%:取余
++:自增
–:自减
余数的使用12345678910111213141516# 使用RANDOM取随机数echo $RANDOM27899# 解析:随机数的范围是 :man bash 可以查到 0 and 32767 总共32768个数但是有时候,我想在一个范围内随机,例如,咱们班有100个学生,我想在100内随机抽取一名幸运观众。那么就需要使用取余的方式来完成了。# 示例:echo $((RANDOM%10))9echo $((RANDOM%10))7echo $((RANDOM%10))5
自增的使用123456789101112# 一般在使用运算的时候,有时候会写 i=i+1 那么我们就可以简写成 i++# for循环中for(i=1;i++;i<=10){ 这个循环就相当于,第一次循环的时候,i=1 第二次循环的时候,i=i+1 也就是 i=1+1即 i=2 第三次循环的时候,i=i+1 也就是 i=2+1即 i=3 第四次循环的时候,i=i+1 也就是 i= ...