性能分析-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的使用就变得简单了。

相关推荐
ILL11IIL23 分钟前
k8s的pod管理及优化
云原生·容器·kubernetes
咖啡里的茶i1 小时前
在Docker环境中安装Hadoop cluster 实验报告三
docker
笑洋仟1 小时前
docker的overlay2目录占用磁盘空间很大,清理办法
运维·docker·容器
木雷坞2 小时前
2026 年 5 月国内可用 Docker 镜像源列表与配置方法
运维·docker·容器
2301_780789662 小时前
“数字珍珠港”再现:西北能源基地DNS篡改事件深度复盘与防护升级
运维·服务器·网络·tcp/ip·网络安全·智能路由器·能源
老王谈企服2 小时前
2026制造业供应链韧性提升,智能化将成为核心解决方案吗?基于实在Agent的端到端自动化实践
运维·人工智能·ai·自动化
Agent手记3 小时前
工厂货物智能入库全流程自动化:基于实在Agent与ISSUT技术的2026工业自动化实战指南
运维·人工智能·ai·自动化
咖啡里的茶i4 小时前
从云端数据分析平台数据图实验报告
docker
Agent手记4 小时前
供应商资质智能审核自动化、落地方法与合规校验方案:AGI时代下的企业级风控重塑
运维·人工智能·ai·自动化·agi
神奇椰子5 小时前
Linux系统更换软件源说明文档
linux·运维·服务器