安装步骤
安装Docker前,先安装Yum
sudo apt-get install yum 安装yum
yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
查看仓库中的docker版本
yum list docker-ce --showduplicates | sort -r
安装docker
yum install -y docker-ce
启动
systemctl start docker
加入开机启动
systemctl enable docker
验证是否安装成功
docker version
Ubuntu安装docker
ubuntu 安装docker
一、安装docker
1、安装docker:sudo apt-get install -y docker.io
2、启动docker服务:systemctl start docker
3、设置开机启动:systemctl enable docker
4、查看docker状态:systemctl status docker
5、停止docker服务:systemctl stop docker
6、查看docker版本:docker version
镜像就相对于一个安装文件,容器相当于镜像中的应用,一个镜像中可以跑多个容器。
查看都有哪些镜像
docker images
可以自己打镜像,也可以用官方的镜像。
启动某一个镜像
查看当前有哪些活动的容器 docker ps
查看进程 ps -ef
查看是什么操作系统 cat /etc/*release
退出 进入的容器 ctrl P 后 ctrl q
docker inspect ubuntu 查看建好容器的信息
docker ps 当前活动的容器。
docker ps -a 当前活动的不活动的一起看。
安装后的容器进行卸载
系统自带的容器 hello world
docker search hello
抓取 官方的 hello-world 镜像。
步骤1.拖镜像 步骤2 . 跑容器。
0.查看抓过哪些容器 docker images
0. docker search centos
1. docker pull centos
2.docker run -itd --name miaosha -p 7080:7080
正在抓取 centos
docker pull hello-world
把官方的镜像,里面添加一些东西,然后打成自己的镜像
docer run -itd --name=server_
从网上拖下来的容器如下:
官方的java + 自己的项目,打成一个镜像,然后运行容器。
UP 说明已经跑起来了
创建容器并且让它运行、进入容器里面。
举一个面向对象编程的例子,镜像就是一个类,而容器就是这个类的某一个实例,镜像是容器的模版,是静态的,而容器是运行时动态的。理清这个概念之后,我们就可以着手构建镜像了,而我们部署只需要从这个镜像生成一个新的容器就可以了。
docker run -itd --name=server_setup ubuntu /bin/bash
docker run -itd --name=jinx ubuntu /bin/bash 构建容器并运行起来
docker images 查看镜像
docker ps 查看运行的容器
Docker 主要有两种方式构建镜像,
第一种是从一个镜像开始,手动进行各种操作,然后提交,构建镜像,类似于操作完成后使用 Git 提交构建一个新的镜像。
docker commit f1abb18b88cd server_img
第二种是使用一个构建脚本(Dockerfile)自动打包成新的镜像。这两种方式各有应用场景,第一种适用于自己试验或尝试一些新想法,属于手动型,而第二种则属于自动构建,便于构建自动化 DevOps 及版本控制,文本就介绍使用 Dockerfile 构建镜像的方法。
颜大哥作业如下:
退出容器,可使用 ctrl-p 再 ctrl-q
2022年8月16日星期二 心田老师
沙箱机制
镜像就是对象,容器就是new的对象
docker安装到哪里,哪里就是宿主机。
tomcat 下载到本机
启动容器
删除容器2种方式
全删
docker rm -f $(docker ps -a -q)
全部启动容器,但是容器间没有关联。
端口映射 宿主机端口 不冲突
改端口文件 conf/server.xml
/p /v 挂载。
7070是映射端口 ,8080是固定端口,
所有容器都有默认端口 tomcat8080 ,mysql 3306,redis xxx
link 关联其它容器 mysql mq redis
下节课 dockerfile
安装V6的 不要V5的
借助目录挂载 link 同步项目war包到 容器中,因为Xftp是传到了服务器--服务器到容器需要用到挂载技术。
笔记在云盘
2022年8月20日星期六
查看容器详情 docker inspect mysql
查看容器日志 docker logs -f
镜像地址 portainner
1.创建镜像。 2.来容器、创建容器、3.运行容器。
docker run -id --name xtPortainer -p 9008:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
Docker 容器Web管理平台
http://192.168.88.140:9000/#!/init/admin
如何自己创建镜像????
什么事 dockerfile? 就是自己打镜像。
1.新建 Dockerfile 大小写不要修改
2.文件里面些Dockerfile语法
3.执行这个文件
4.查看镜像是否生成
5.创建容器
80%的项目是jar包
真正运行的是容器里面的jar包。
宿主机- 容器 -jar包(三层关系)
创建 DockerFile 文件
一般项目部放到usr/local 目录下面
执行打镜像指令, DockerFile文件里面定义的 镜像的名称 sq-mail
如何写DockerFile总结:如下6步骤
运行容器
启动容器命令
docker run -itd --name=server_setup ubuntu /bin/bash
docker run -itd --name=jinx ubuntu /bin/bash 构建容器并运行起来
docker run -itd --name=tomcatjinx tomcat /bin/bash
docker images 查看镜像
docker ps 查看运行的容器
容器web管理平台
portainer.io 用户名 admin 密码 admin
容器的迁移
镜像迁移 与 容器的迁移。
操作流程:
1.容器打包成镜像 docker commit -m sq 镜像名
2.镜像导出成一个tar文件格式 docker save -o sq.tar sq 镜像名
3.xftp 工具传入
4.导入镜像 docker load -i sq.tar
MD5 加密
Docker第三次课 8月20日星期六。
cpu使用率高 用户级别+系统级别,cpu利用率怎么看?
100-ID = 80%的CPU使用率
Top命令
us
sy
wa
si
1. 哪一个进程占用的多?
2.哪一个方向高
负载是什么?进程数。
负载高 ,但是CPU利用率低,说明IO磁盘操作进程过多。
grafana
查看线程
ps -ef |grep java
top -H -p 2976 #查看线程
free -m 查看内存 m表示mb 兆
总的 - 用过的=剩余的内存
Swap交换机空间(虚拟内存)
内存降不下(没有释放)就是内存溢出。
需要在结束后观察cpu和内存是否基本恢复到压测前的样子?内存没恢复有可能是泄露了?
cpu不释放会有啥原因呢?进程秩序运行
20220825 星期二。
ping
ifconfig
tcping
netstat -tpln 查看端口是否倍占用
TPS 服务器每秒处理事务数
三个方向查看问题:客户端问题、网络传输问题、服务器处理问题(服务器资源情况cpu 内存...问题)。
KB 字节单位
cd usr/local
/usr/local/nmon 目录下启动如下文件 ./
按 c cpu
按m 内存
按 d 网络
点击下图,导入生成的文件。
课程34 下半节课
RT 小于3秒钟
loadrunner 最便宜14万 ,最贵80万
20220827 星期六 搭建 Prometheus + Grafana
一个优秀的监控平台最重要的
1.准确性
2.高可视化
3.关联性 : 发邮件、发警告
4.运维能力:对比历史数据
1.采集器
2.存储器
解决安装 grafana 和 prometheus 不成功下载问题如下:
重新启动docker :
sudo systemctl restart docker
mysql没有启动起来容器,解决办法:如下
杀掉所有mysql的进程后可以重启启动成功。
ps -ef|grep mysqld , 查看有哪些进程。
kill -9 进程号 ,通过该命令杀掉下面的进程后重启启动mysql容器。
kill -9 7234
重启指定容器。
docker start 容器名称或者容器id
Warning: Error fetching server time: Detected 481.9449999332428 seconds time difference between your解决方法:
在服务器输入命令:ntpdate ntp.aliyun.com
同步时间即可正常~
导入cpu模板
修改连接数
进入redis容器命令行
java 项目里面的配置文件修改连接数
查看进程里面的线程情况
查看网络情况 sar -n DEV 1
查看日志
接口调用函数
网卡情况
课程第35次
接口文档 密码 :群公告里面 songqin
进入容器查看
docker exec -it redis /bin/bash
redis-cli -a sq
information
CONFIG get maxclients
[root@localhost ~]# history --查看历史操作命令
top -H -p 40680 ----查看线程
查看网络情况 sar -n DEV 1
[root@localhost ~]# cat /proc/interrupts
8月30日星期二
悲观锁:不过怎么样都要锁
select * from sq_001 where id = 100 lock in share model;
乐观锁:根据数据库的变化程度,判断是否加锁。
top -H -p pid #查看线程
top -H -p 36087
docker exec -it 容器id /bin/sh
jstack 7 查看栈信息