日常docker使用简介
由于日常测试的项目都是在云端,阿里云,AWS上,基本也都是使用了虚拟化技术,项目放在docker或者k8s中。我现在所在的公司,是把项目放在docker中,挂在阿里云上,所以日常使用比较多的就是docker了。
常用操作
查看服务
从跳转机进入指定的docker所在服务器中,想要查看目前运行的服务:
查看所有服务:
1 | docker ps -a |
和在linux下查看服务差不多,只是前面加了个docker
;
查看指定的服务,例如想查看服务名为boss的服务:
1 | docker ps -a |grep boss |
看着还是和linux下查看服务一样。。
查看日志
一般进行测试时,习惯是开着日志,动态查看,因为有的错误,页面不会全部展示出来,我的习惯是进行测试时,浏览器开启开发者模式(F12),后台开启动态日志,执行操作之后进行数据库查询验证;那么docker下进行动态日志展示:
1 | docker logs -f --tail=300 ContainerId |
解释:
首先在服务所在的服务器下,查询得到该服务当前开启的容器ID(containerId)docker ps -a
该命令执行完成,会展示服务的基础信息:
1 | [root@test-docker2 anmavadmin]# docker ps -a |
即可以获取得到指定服务的containerid,动态查看日志和linux下类似,linux下普通的查看日志:
1 | tail -f -n 300 xxx.log |
即可动态显示日志文件后300行的日志,同样的,在docker下查看也是使用-f
动态显示,显示行数用--tail=行数
,再加上指定的Container Id
即可
1 | docker logs -f --tail=300 boss_container_id |
进入Docker容器
docker说到底,其实就是个小型的linux环境,所以,和普通linux一样,也是可以直接进入docker内部,进入docker内部有四种方法,方法很多,日常熟练的掌握一l两种即可。:
我日常使用的是docker exec
进入docker内部:
1 | docker exec -it ContainerId /bin/bash |
即可进入容器内部,之后就可以和普通linux下一样操作。
K8S(Kubernetes) + Docker
当前很多环境的搭建方案选择都是k8s+docker的混合搭建,这样的环境,进行测试工作的常用操作:
查看服务所在节点
首先是进入k8s所在的服务器,查看需要查看日志的服务所在docker节点(正常情况下都不会只有一台docker,负载均衡,都知道。。。):
1 | kubectl get pods -o wide |
即可显示所有服务的基础信息,包括服务名称,状态,IP,docker节点:
1 | [root@centos7-k8s1 xxx]# kubectl get pods -o wide |
此时即可获取到服务所在节点,例如上述示例,服务在centos7-k8s1
,即节点1上,所以进入节点1所在服务器,即可动态查看服务日志:
1 | 进入节点1,sudo su root(或者就是sudo 命令) |
查看服务状态
测试中也会遇见点击页面无响应,后台报服务连接超时的错误,此时,可以查看当前服务运行状态:
1 | kubectl get rc -o wide |
获取到的信息:
1 | [root@centos7-k8s1 xxx]# kubectl get rc -o wide |
可以看出boss服务,期望运行节点数是2,当前运行节点数也是2,所以该服务当前是正常状态。一旦出现DESIRED
和CURRENT
的值不一致,表明有服务出现问题。出现问题之后就需要对服务进行问题定位,重启等操作,就不多说了。
后记
自己对于虚拟化技术的掌握度基本是皮毛都算不上,现在还是满足最基本工作需要范围o(╥﹏╥)o,后期看来得好好补。。
3月3号时候,突然有个冲动,步行到西山岛上去,然后就说走就走。。。从渔洋山
一直到西山岛-金庭游客中心
,一个人默默的暴走了近1个小时40分钟,9.5km,走完全程3段太湖大桥
,穿过岛两座,可惜天公不作美啊,太湖湖面上雾有点大,桥上风景还是有点朦胧,得找个天气晴朗的日志再走一遭!(再也不穿登山鞋去了,原本想爬山才穿的登山鞋,结果徒步差点没把脚走废掉。。。)
生命在于运动,恰逢一年一度的跑步黄金时期,该走出去,走走,跑跑,爬爬山~~~
(大早上来发现VPS又挂了,哎我的hexo可以搭在VPS上的,进不去还写个鬼博客,只好又重搭了一个,愁)