性能分析-docker知识

docker的相关概念

参考1 ,参考2

docker是一个做系统虚拟化的软件,跟vmware类似,虚拟出来的也是操作系统。我们现在在企业中, 使用docker虚拟出来的系统,大多都是linux系统。

docker镜像image:就是虚拟一个docker容器需要的操作系统、服务的依赖、服务包,打包成的一个文 件。

docker容器 container:就是用docker软件虚拟出来的一个linux操作系统。

docker仓库:就是管理镜像的地方。

  • 公有仓库:hub.docker.com,所有人都可以在这里免费下载镜像
  • 私有仓库: 管理私有镜像的仓库

docker的操作系统是一个不完整的操作系统。部署项目的操作系统,有很多操作系统的功能是不需要的。把一些不需要的功能,全部从操作系统中移出出去。那么这个操作系统就给变得非常小了。小到这 个操作系统,只有三个部分是必须的:cgroups、namespace、unionFS。所以容器就可以变得非常小。所以,它占用宿主机的资源就很小。所以一台机器就可以参数更多容器出来。

因为docker容器的操作系统,砍掉了很多功能,所以里面可以执行linux命令,但是不是所有的命 令都可以执行。

一个宿主机上,给运行多个docker容器,容器与容器之间默认是相互隔离的。

docker安装

bash 复制代码
yum install -y yum-utils device-mapper-persistent-data lvm2
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl restart docker # 重启
systemctl enable docker #开机自启动

docker命令使用,需要超管权限。

获取帮助: docker --help

查看到docker子命令的帮助: docker command --help

常用到命令

  • docker pull 下载镜像到本地,命令用法: docker pull 镜像名称:tag
    • 默认是从docker官方网站上下载镜像: docker pull tomcat:8.0.53-jre7-alpine 下载tomcat为8.0.53 jre为7的tomcat镜像
  • docker images 列出所有本地镜像
  • docker run 创建容器并运行 docker run -itd --cpus 1 --memory 2G --name tomcat-kyj-1 -p 6666:8080 tomcat:8.0.53-jre7-alpine
    • docker create 只是创建一个新容器,创建之后,并没有运行。
    • 使用docker run 命令,常用选项参数:
      • -i
      • -t
      • -d
      • --name 自定义容器的名称,这个参数可以不带,不带就随机生成一个容器名称
      • -p 发布容器的端口个宿主机。 -p 宿主机的端口:容器中服务的端口
      • -v 卷积 把宿主机的一个路径映射到容器中一个路径。 当容器被删除时,这个宿主机的 路径下的内容不会删除。
      • -e 设置环境变量 docker run 命令,在创建容器时,如果使用的镜像,本地没有就会去自动下载
  • docker logs 容器名称或容器id
  • docker ps 查看容器状态,默认时只显示正在运行的容器,跟上-a参数,显示所有的容器'容器id'和'容器的名称'
  • docker stats 容器名称或容器id,可以来查看容器的运行状态
  • docker inspect 容器名称或容器id,用来查看容器的相信信息
  • docker network 容器网络 docker network ps显示所有的容器网络
  • docker cp 拷贝
    • docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- 从容器中拷贝到本地路径
    • docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH 从本地拷贝到容器中某个路径
  • docker exec 在一个运行中的容器中执行命令
    • docker exec -it 容器名称或容器id /bin/bash 进入容器内部,使用bash命令一般情况 使用bash,也可以使用sh
    • exit 退出容器

创建mysql数据库容器

复制代码
docker run -itd --name mysql-1 -p 5566:3306 -e MYSQL_ROOT_PASSWORD=123456780
mysql:5.7.41

创建好了数据库容器之后,创建lemon_erp库,对库进行初始化操作

用docker方式,部署lemon-erp项目

bash 复制代码
docker pull openjdk:8
docker run -itd --name erp-1 -p 8882:8082 openjdk:8
docker cp lemon_erp.jar erp-1:/opt/lemon_erp.jar
docker cp config/ erp-1:/opt/config/
# 修改 config文件夹中 application-dev.yml文件中数据库的配置
docker cp application-dev.yml erp-1:/opt/config/application-dev.yml
docker exec -it erp-1 /bin/bash
cd /opt
nohup java -jar lemon_erp.jar &
exit

监控docker

详见

grafana + Prometheus + docker监控

cadvisor

bash 复制代码
docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --
volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --
volume=/dev/disk/:/dev/disk:ro --publish=8880:8080 --detach=true --name=cadvisor
--privileged --device=/dev/kmsg google/cadvisor

修复prometheus.yml

启动Prometheus和grafana

引入模板 193

如果公司用k8s,它的配置文件yml文件,与dockerfile类似。

docker 与 k8s

docker是一个用于管理和创建容器的软件

k8s,是容器的集成管理工具,这个工具集成了docker的能力。

以前,k8s创建容器,就是用docker

所以掌握了 docker知识k8s的使用就变得简单了。

相关推荐
蓁蓁啊2 小时前
GIT使用SSH 多账户配置
运维·git·ssh
程序猿小三4 小时前
Linux下基于关键词文件搜索
linux·运维·服务器
虚拟指尖5 小时前
Ubuntu编译安装COLMAP【实测编译成功】
linux·运维·ubuntu
椎4956 小时前
苍穹外卖前端nginx错误之一解决
运维·前端·nginx
刘某的Cloud6 小时前
parted磁盘管理
linux·运维·系统·parted
极验6 小时前
iPhone17实体卡槽消失?eSIM 普及下的安全挑战与应对
大数据·运维·安全
爱倒腾的老唐6 小时前
24、Linux 路由管理
linux·运维·网络
yannan201903136 小时前
Docker容器
运维·docker·容器
_清浅6 小时前
计算机网络【第六章-应用层】
运维·服务器·计算机网络
正在努力的小河6 小时前
Linux 自带的 LED 灯驱动实验
linux·运维·服务器