1.docker vs Vmware
vmware image, Centos7.iso 是镜像文件,安装在宿主机上后形成容器,然后在容器里安装软件mysql,服务等等。
docker image 也是类似的,区别在于 docker container 会比vmware 的小,灵活,不会强依赖镜像的操作系统。想要mysql 就pull mysql image,更加精准一些。
image - > container
2.docker port
container port 和 宿主机 port 用-p 命令做关联,这样的话 只要保证宿主机(linux)端口不被占用就可以了。container 端口号可以重复。如图所示,101 是PC1 ip,100是PC2 宿主机 ip,nginx 是一个container:80,PC1 访问PC2 nginx 3307 端口
3.容器之间的通信
a.不通电脑 根据宿主机的ip+ port
b.统一台电脑不通的容器通信, 使用container name 访问
c.dokcer 容器ip (不推荐)
4.登陆容器
docker -exec -it container_id /bin/bash
5.监控容器
a.日志监控(排错)
docker logs -f container_id
如果日志文件过大使用cat 命令删除log 文件内容,
cat /dev/null > xxxxx-json.log (清空文件,别用rm 删除)
b.性能监控
i. 监控宿主机
promethus + grafana + exporter
ii. 监控容器
netdata
exporter 也可以监控container
sprintboot admin
skywalking
6.JVM 分析
堆内存 存对象,哪些对象 内存高,OOM,垃圾回收
栈内存 存着 逻辑
线程堆栈
7. 性能分析
1.压力很容易上去(腾讯课堂录播)
2.压力上不去(很难分析,意味着有 性能瓶颈,很难定位)
有出现可能,1.路堵了(网络) 2.中间件连接数,3.代码有没有阻塞的,休眠的 4.sql 有没有问题,网络-带宽-中间件-程序-SQL
性能工具,只有一个作用产生压力。