docker使用简介

日常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
2
[root@test-docker2 anmavadmin]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

即可以获取得到指定服务的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内部的四种方法

我日常使用的是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
2
3
[root@centos7-k8s1 xxx]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
test-boss-server-060b3cf86fa24bd7c9ce2548015e9b38-07qn1 1/1 Running 0 12h 172.17.46.3 centos7-k8s1

此时即可获取到服务所在节点,例如上述示例,服务在centos7-k8s1,即节点1上,所以进入节点1所在服务器,即可动态查看服务日志:

1
2
3
进入节点1,sudo su root(或者就是sudo 命令)
docker ps -a |grep boss
docker logs -f --tail=300 containerid

查看服务状态

测试中也会遇见点击页面无响应,后台报服务连接超时的错误,此时,可以查看当前服务运行状态:

1
kubectl get rc -o wide

获取到的信息:

1
2
3
[root@centos7-k8s1 xxx]# kubectl get rc -o wide
NAME DESIRED CURRENT READY AGE CONTAINER(S) IMAGE(S) SELECTOR
test-boss-server 2 2 2 12h test-boss-server registry.docker.test.cn:5000/test-dev/test-boss-server:20180304_215608 deployment=060b3cf86fa24bd7c9ce2548015e9b38,name=test-boss-server,version=test

可以看出boss服务,期望运行节点数是2,当前运行节点数也是2,所以该服务当前是正常状态。一旦出现DESIREDCURRENT的值不一致,表明有服务出现问题。出现问题之后就需要对服务进行问题定位,重启等操作,就不多说了。

后记

自己对于虚拟化技术的掌握度基本是皮毛都算不上,现在还是满足最基本工作需要范围o(╥﹏╥)o,后期看来得好好补。。

3月3号时候,突然有个冲动,步行到西山岛上去,然后就说走就走。。。从渔洋山一直到西山岛-金庭游客中心,一个人默默的暴走了近1个小时40分钟,9.5km,走完全程3段太湖大桥,穿过岛两座,可惜天公不作美啊,太湖湖面上雾有点大,桥上风景还是有点朦胧,得找个天气晴朗的日志再走一遭!(再也不穿登山鞋去了,原本想爬山才穿的登山鞋,结果徒步差点没把脚走废掉。。。)

生命在于运动,恰逢一年一度的跑步黄金时期,该走出去,走走,跑跑,爬爬山~~~
(大早上来发现VPS又挂了,哎我的hexo可以搭在VPS上的,进不去还写个鬼博客,只好又重搭了一个,愁)

文章目录
  1. 常用操作
    1. 查看服务
    2. 查看日志
  2. 进入Docker容器
  3. K8S(Kubernetes) + Docker
    1. 查看服务所在节点
    2. 查看服务状态
  4. 后记
|