docker使用过程中遇到概念问题

  1. 容器和虚拟机的区别
  • 容器共享主机内核;虚拟机占用主机内核硬件
  • 容器的启动速度是秒级别;虚拟机的启动速度是分钟级别
  • 容器资源占用低,性能接近原生;虚拟机资源占用高,性能有一定的损耗
  • 容器是进程级别的隔离;虚拟机完全隔离
  1. 容器和镜像的对比
  • 镜像是静态的只读模版,容器是动态的(镜像运行的实力)
  • 镜像的存储模式为分层存储并共享基础层,容器的存储模式是在镜像层上添加可写层
  • 镜像的主要作用是定义环境,容器的主要作用是运行应用
  1. dockerfile 到底是用来干啥的?
  • 构建属于自己的镜像
  1. dockerfile中的RUN、CMD和ENTRYPOINT 有什么区别?
  • RUN :在构建镜像的时候要执行的操作
  • CMD和RNTEYPOINT全部都是在生成容器的时候执行的命令
  • CMD :其内容可以被docker run后边跟的命令覆盖掉
  • ENTRYPOINT:其内容一定不会被覆盖,如果在docker run后有写一个命令,那么可能会被认为是entrypoint要执行命令的参数,导致运行出错
  1. docker命令中exec和attach都是进入正在运行的容器,它俩有啥区别?
  • 主进程是 bash的情况下:
    使用 attach 进入容器,exit退出时会导致容器停止。
    使用 exec 启动的 Shell 被关闭,容器仍会继续运行(只要主进程未退出)。
  • 使用场景:
    docker exec:在容器内启动新进程,可进行任何操作,适合调试和管理操作
    docker attach:直接接入主进程的 I/O 流,仅能与主进程进行交互操作,适合监控实时输出
  1. 查看镜像中的目录的区别
方法 优点 缺点 写作方法
启动临时容器,进入容器内进行查看 交互式操作,能够直观的进行查看 需要手动退出容器 docker run -it --rm --entrypoint=/bin/sh <镜像名> 在容器内输入ls
将镜像导出为tar进行查看 无需运行容器 生成临时文件占用空间 docker create 创建临时容器,docker export 导出 tar -xf解压,ls ./usr/local 查看解压的目录,docker rm 删除临时容器
使用 dive 工具 可视化分析,显示层级变更 需安装额外工具 install dive 安装dive,dive 镜像名 分析镜像
docker inspect 获取元数据(如环境变量等等) 无法直接查看文件内容 docker inspect <镜像名> --format='{{.RootFS.Layers}}' 查看镜像的层信息
相关推荐
ai_xiaogui11 小时前
私有化部署大模型实战:PanelAI 一键搭建、Token 计费与多用户隔离
运维·私有化部署·大模型部署·大模型 token 计费·api key 统一管理·多用户实例隔离·应用市场一键部署
杨浦老苏11 小时前
把项目管理搬回自己服务器:Windshift部署与避坑
docker·项目管理·群晖
企鹅侠客11 小时前
Linux CPU 负载平均值(Load Average)详解:从原理到实践
linux·运维·服务器·服务器负载
易点云徐源12 小时前
HP 暗影精灵 PRO 16 安装双系统后,开机直接进入 Windows,按 F9 才能进入 Ubuntu:GRUB 菜单不显示的处理方法
linux·运维·ubuntu
木雷坞12 小时前
Baserow Docker部署:导入设备借用CSV,再用表单新增登记
运维·docker·容器
程序员大雄学编程12 小时前
crontab 脚本不写日志?我把 7 个原因在 Ubuntu 上逐个复现了一遍
运维
广目软件12 小时前
HA分布式架构采集节点变更操作手册20261029
运维·服务器·ansible·zabbix·prometheus
米优12 小时前
linux下获取崩溃程序的core文件
linux·运维·服务器
半杯咖啡半行码12 小时前
QML进阶指南:状态动画与模型视图实战详解
运维·qml
qeen8713 小时前
【Linux】动静态库的制作使用及ELF文件的宏观理解
linux·运维·库