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

相关推荐
sun0077004 分钟前
ubuntu dpkg 删除安装包
运维·服务器·ubuntu
海岛日记6 分钟前
centos一键卸载docker脚本
linux·docker·centos
小袁搬码2 小时前
Windows中指定路径安装DockerDesktop
windows·docker·容器·docker desktop
吃肉不能购2 小时前
Label-studio-ml-backend 和YOLOV8 YOLO11自动化标注,目标检测,实例分割,图像分类,关键点估计,视频跟踪
运维·yolo·自动化
学Linux的语莫2 小时前
Ansible使用简介和基础使用
linux·运维·服务器·nginx·云计算·ansible
qq_312920112 小时前
docker 部署 kvm 图形化管理工具 WebVirtMgr
运维·docker·容器
踏雪Vernon2 小时前
[OpenHarmony5.0][Docker][环境]OpenHarmony5.0 Docker编译环境镜像下载以及使用方式
linux·docker·容器·harmonyos
学Linux的语莫2 小时前
搭建服务器VPN,Linux客户端连接WireGuard,Windows客户端连接WireGuard
linux·运维·服务器
黑牛先生2 小时前
【Linux】进程-PCB
linux·运维·服务器