当前位置: 首页 > news >正文

20250706-9-Docker快速入门(下)-Docker在线答疑_笔记

一、Kubernetes核心概念与集群搭建

1. 在线答疑



1)答疑Docker需要掌握到什么程度
  • 学习目标:达到入门水平即可,重点掌握第一章Docker入门视频内容
  • 学习建议:预习时间约3-4小时,建议吸收视频内容的80%
  • 学习安排:可作为K8s学习的前置知识,实现平滑过渡
2)答疑镜像的封装概念
  • 分层结构:镜像采用分层组合方式,基于UFS(联合文件系统)实现
  • 空间优化:当多个镜像共享相同基础层时,仅存储差异部分
  • 版本控制:通过分层机制实现类似版本控制的效果
  • 建议:深入了解UFS系统工作原理可更好理解镜像封装机制
3)答疑docker私有仓库镜像删除

  • 删除方式:不同镜像仓库系统删除方法不同
  • Harbor示例:图形界面提供删除按钮
  • 通用建议:参考具体镜像仓库系统的官方文档
4)答疑容器资源利用率监控
  • 监控原则:
    • 容器本质是应用的另一种部署方式
    • 建议单个容器只运行一个应用程序
  • 监控工具:
    • 传统脚本监控方法仍然适用
    • 推荐使用专用工具如cAdvisor
    • Kubernetes中可使用metrics-server
  • 优势:单应用容器部署可精确获取应用资源占用情况
5)答疑docker-compose作用



  • 核心功能:单机批量管理容器
  • 应用场景:
    • 部署由多个容器组成的应用
    • 实现一键部署/关闭/卸载等操作
  • 限制:不具备集群管理能力
6)答疑docker容器互通



  • 互通基础:容器间通信是必备功能
  • 实现机制:
    • 基于Linux虚拟网桥技术
    • 容器启动后自动加入网桥
    • 类似交换机二层网络通信
  • 技术组件:结合网桥设备和veth pair实现
7)答疑打成镜像数量



  • 镜像构建:支持任意层级的镜像构建
  • 数量限制:镜像生成数量没有上限
  • 构建示例:镜像A→容器B→镜像B的循环构建不受限制
8)答疑docker数据持久化应用场景
  • 容器数据的临时性

    
    • 数据丢失风险:容器是临时性的,当容器被删除时,容器内的数据(如MySQL数据)会随之丢失
    • 生命周期特性:数据仅在容器运行且未被删除时存在,重建容器时无法保留原有数据
    • 心目的:确保容器重建后仍能访问原有数据
    • 实现方式:将容器数据持久化存储到宿主机,通过挂载卷(volume)实现数据持久化
  • 数据持久化的实现方式

    
    • 挂载机制:通过volume将容器内数据目录映射到宿主机特定路径
    • 应用场景:数据库容器(如MySQL)、需要保存用户数据的应用等
9)答疑docker容器通信原理



  • 底层实现:基于iptables的NAT规则实现容器间通信
  • 外部访问容器:通过iptables的DNAT规则转发
  • 容器访问外部:通过iptables的SNAT规则实现
  • 网络组件:配合网桥(bridge)和veth设备对完成网络连接
10)答疑k8s指定端口方式



  • Service机制:k8s通过Service生成随机端口,但可通过字段指定
  • 配置方法:使用nodePort字段显式定义服务端口
  • 与Docker区别:不同于Docker直接使用

    −p-p−p

    参数映射端口
11)答疑批量删除镜像



  • 删除命令:使用docker命令手动删除无用镜像
  • 卷处理:镜像删除不会自动清理关联卷,需单独执行卷清理命令
  • 清理工具:Docker提供专用命令可清理系统无用资源
12)答疑HUB认证方式



  • 证书生成:推荐使用openssl或cfssl工具生成自签名证书
  • 实践建议:两种工具均可满足需求,cfssl操作更简便
13)答疑容器数量少上swarm还是k8s



  • 技术选型:Docker Swarm已被官方弃用,不再维护
  • 唯一选择:无论容器数量多少,都应选择k8s作为容器编排方案
14)答疑部署lnmp文件目录共享问题



  • 必要性分析:Nginx需要处理静态文件,PHP需要处理动态脚本,两者必须共享同一程序目录
  • 解决方案:除非将静态/动态文件物理分离,否则必须保持目录共享
  • 典型场景:网站程序通常混合存放静态资源和PHP脚本文件
15)答疑数据库是否应放在容器中



  • 适用场景:单实例数据库可部署在容器中
  • 架构限制:主从复制等复杂架构不建议容器化部署
  • 数据安全:必须配合持久化卷使用,避免数据丢失
二、知识小结

知识点

核心内容

易混淆点/考试重点

难度系数

Docker基础掌握程度

入门水平即可,需掌握80%的入门视频内容(约4小时)

无需深入底层原理,重点理解基础操作和概念

⭐⭐

镜像封装原理

基于UFS联合文件系统分层构建,节省磁盘空间

镜像层共享机制(如A/B镜像的磁盘占用关系)

⭐⭐⭐

容器监控

推荐单容器单应用部署,通过cAdvisor等工具监控资源

传统虚拟机监控与容器监控的差异

⭐⭐⭐

Docker Compose作用

单机批量管理容器,适用于多容器应用的一键部署/关闭

不支持集群管理,仅限单机场景

⭐⭐

容器网络互通

通过Linux网桥(类似交换机)和veth pair实现二层通信

与iptables NAT的区别(外部访问走DNAT)

⭐⭐⭐⭐

数据持久化场景

MySQL等有状态服务需挂载宿主机目录,防止容器删除数据丢失

容器临时存储与持久化卷的对比

⭐⭐⭐

K8s端口管理

通过Service的nodePort字段指定端口(非完全随机)

Docker直接映射端口(-p)与K8s Service的差异

⭐⭐⭐⭐

数据库容器化争议

单实例可容器化,集群架构需谨慎

数据安全性与容器 ephemeral 特性的矛盾

⭐⭐⭐⭐

LNMP目录共享

Nginx与PHP需共享网站目录以同时处理静态/PHP文件

动态与静态资源未分离时的必要性

⭐⭐⭐

Swarm淘汰现状

官方已停止维护,仅选K8s

Swarm与K8s的适用场景对比(历史背景)

⭐⭐

http://www.dtcms.com/a/268298.html

相关文章:

  • Linux 内存分配理论与水位机制全解
  • Mybatis--动态SQL
  • 前端防抖Debounce如何实现
  • Kafka “假死“现象深度解析与解决方案
  • JavaScript 中导入模块时,确实不需要显式地写 node_modules 路径。
  • week2
  • 基于 Rust 的前端工具基本实现
  • 【它加上100是一个完全平方数,再加上168又是一个完全平方数】2022-7-17
  • 第十六节:第三部分:多线程:线程安全问题、取钱问题的模拟
  • 浅谈漏洞扫描与工具
  • 计算机网络实验——互联网安全实验
  • 10046 解决 Oracle error
  • NLP文本预处理
  • Chunking-free RAG
  • 拼好题(各个平台的零散题目)
  • vue什么时候可以用index作为:key的索引
  • Vue计算属性(computed)全面解析:原理、用法与最佳实践
  • Python库 python-pyper 的详细使用(优秀的并发数据处理框架)
  • 第一次ctf比赛的赛后复现记录
  • ​保持矩阵秩不变的乘法
  • SoloSpeech:从混合音频中提取目标语音
  • 下载安装 com0com
  • Android16之解决报错:ckati: no such file or directory(二百四十九)
  • ros-noetic搭建turtlebot3测试
  • 数据运营策略 —— B-O价值模型
  • 【机器学习笔记Ⅰ】12 逻辑回归
  • 《Redis》缓存与分布式锁
  • usrp b210 亚克力外壳
  • 【机器学习笔记Ⅰ】11 多项式回归
  • hp开关机