随笔分类 - Docker与AI
摘要:Docker 提供了多种网络模式,用于满足不同场景下容器的网络通信需求(如隔离性、跨主机通信、性能等)。这些模式本质上是通过 Linux 网络命名空间(Network Namespace)、虚拟网桥、VETH 对、NAT 等技术实现的网络隔离与连接。 1. bridge 模式(默认模式) 特点: 容
阅读全文
摘要:Docker 对容器的资源限制(如 CPU、内存、磁盘 I/O 等)并非 Docker 自身发明的技术,而是基于 Linux 内核的 Cgroups(Control Groups,控制组)机制实现的。Cgroups 是 Linux 内核提供的一种内核级别的进程资源管理技术,能够限制、记录和隔离进程组
阅读全文
摘要:在 Docker 中,docker run(命令)、CMD(Dockerfile 指令)、ENTRYPOINT(Dockerfile 指令)都与容器启动时执行的命令相关,但作用和优先级不同。核心区别在于:docker run 是启动容器的命令,可动态传入参数;CMD 和 ENTRYPOINT 是 D
阅读全文
摘要:在 Dockerfile 中,COPY 和 ADD 都是用于将宿主机文件/目录复制到镜像文件系统中的指令,但它们的功能和适用场景有明显区别。核心差异体现在对压缩文件和URL 资源的处理上,以及功能的“透明度”。 1. 基本功能对比 特性 COPY ADD 核心功能 仅复制本地文件/目录到镜像 复制本
阅读全文
摘要:在Docker中执行 docker run 指令后,会在宿主机上生成一系列关联进程,这些进程共同构成了容器的运行环境。具体生成的进程可分为以下几类,核心关系是“Docker 守护进程管理容器进程,容器进程本质是宿主机上的隔离进程”: 1. Docker 客户端进程(短暂存在) 作用:解析 docke
阅读全文
摘要:在Docker镜像中添加缺失的指令(如curl、kill、ipconfig等),需要根据镜像的基础Linux发行版(如Alpine、Debian、CentOS等)使用对应的包管理器安装。以下是常见场景的解决方法: 一、先确认基础镜像的发行版 不同Linux发行版的包管理器不同,需要先确定镜像基于哪个
阅读全文
摘要:Docker 本地镜像文件的存储位置取决于操作系统和 Docker 的运行方式(如原生 Linux、Windows 上的 WSL2 后端、macOS 的虚拟机等),但核心都位于 Docker 守护进程管理的根目录(Docker Root Dir) 下。 1. 查看 Docker 根目录(通用方法)
阅读全文
摘要:优化Docker镜像大小是提升传输效率、节省存储空间和加速容器启动的重要手段。核心思路是减少镜像中的冗余内容(如临时文件、未使用的依赖、编译工具等),常用方法如下: 1. 选择轻量级基础镜像 基础镜像是镜像大小的“基石”,优先选择精简版本的基础镜像,避免使用包含完整操作系统的重型镜像。 替换为 Al
阅读全文
摘要:docker commit 和 Dockerfile 是生成 Docker 镜像的两种不同方式,核心区别体现在构建过程的可追溯性、可重复性、维护性以及镜像的精简程度上。具体区别如下: 1. 构建方式:“手动操作记录” vs “指令式定义” docker commit 生成镜像: 基于运行中的容器创建
阅读全文
摘要:Docker 镜像的层级压缩(layer compression)是通过分层存储机制和压缩算法共同实现的,核心目标是减少镜像的存储空间占用和网络传输成本。其实现原理可以从以下几个方面理解: 1. 镜像的层级结构:基础是“增量存储” Docker 镜像由多个只读层(layers) 组成,每层对应 Do
阅读全文
摘要:在Docker构建过程中,stage(阶段)和step(步骤)是两个不同的概念,分别对应构建过程的不同层级,核心区别在于范围和作用: 1. step(步骤):构建过程的最小单元 step 指的是 Dockerfile 中单个指令的执行过程,是构建镜像的最小操作单元。 例如 FROM、RUN、COPY
阅读全文
摘要:Docker(容器化技术)和虚拟机(Virtual Machine,VM)虽然都能实现“隔离运行环境”的目标,但两者的底层原理、架构和特性有本质区别,核心差异体现在资源效率、启动速度、隔离性等方面。以下是具体对比: 1. 架构本质:是否依赖独立操作系统 虚拟机(VM): 基于“硬件虚拟化”技术,需要
阅读全文
摘要:Docker 作为一种容器化技术,核心价值在于标准化、隔离性和便携性,其应用场景非常广泛,涵盖开发、测试、部署、运维等多个环节。以下是 Docker 最常见的用途: 1. 保证开发环境一致性,解决“在我电脑上能运行”问题 开发过程中,团队成员可能使用不同的操作系统(Windows、macOS、Lin
阅读全文
摘要:在Docker中,容器的状态反映了其当前的运行情况,主要有以下6种常见状态: 1. created(已创建) 容器已被初始化创建,但从未启动过(或启动后被手动停止且未重新启动)。 通常由 docker create 命令(仅创建容器不启动)或 docker run 命令创建但未成功启动时产生。 2.
阅读全文
摘要:Docker 的安全性是一个复杂的话题,不能简单用“安全”或“不安全”来概括。它本身设计了多项安全机制,但也存在潜在风险,其安全性很大程度上取决于配置方式、使用习惯和对风险的防护措施。 一、Docker 本身的安全机制 Docker 通过一系列技术手段隔离容器与宿主机、容器之间的资源,降低安全风险:
阅读全文
摘要:Dockerfile 是用于构建 Docker 镜像的文本文件,包含一系列指令,用于定义镜像的构建过程。以下是 Dockerfile 中最常见的指令及其作用: 1. FROM(基础镜像指令,必选) 指定构建当前镜像的基础镜像,所有镜像都必须基于某个基础镜像构建(除了 scratch 空镜像)。 语法
阅读全文
摘要:在Docker中,当你通过交互式终端(-it参数)进入容器的bash后,若想退出bash但保持容器继续运行,核心是避免终止容器的主进程。具体方法取决于你进入容器的方式: 1. 核心方法:使用 Ctrl+P+Q 组合键(通用) 无论你是通过 docker run -it 启动容器并直接进入bash,还
阅读全文
摘要:在Docker中清理后台停止的容器(状态为exited的容器),常用方法如下: 1. 推荐:使用 docker container prune 命令(安全便捷) 这是Docker官方推荐的清理命令,会自动删除所有已停止的容器,并且执行前会有确认提示,避免误操作。 命令: docker contain
阅读全文
摘要:在Docker中查看镜像支持的环境变量,常用的方法有以下几种: 1. 使用 docker inspect 命令(推荐) docker inspect 可以获取镜像的详细元数据,其中包含预设的环境变量信息。 命令格式: docker inspect --format '{{.Config.Env}}'
阅读全文
摘要:在 Docker 中实现退出容器时自动删除,有以下几种常用方法: 方法一:使用 --rm 参数(推荐) docker run -it --rm <image_name> 作用:容器退出时自动删除容器实例 示例:docker run -it --rm ubuntu bash 退出容器(使用 exit
阅读全文