【自学Docker】Docker diff命令

dockerdiff用于比较Docker容器的文件变更,如Add(添加),Delete(删除),Change(修改)。通过示例展示了如何查看容器的文件状态变化,包括创建未运行的容器和已运行并有修改的容器的情况。最后,介绍了如何清理容器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker diff命令

大纲

在这里插入图片描述

docker diff命令教程

docker diff 命令用于比较一个 Docker容器 不同版本提交的文件差异。该命令后面的 CONTAINER 可以是容器Id,或者是容器名。

docker diff命令会列出 3 种容器内文件状态变化(A - Add, D - Delete, C - Change )的列表清单。

docker diff命令语法

[root@localhost ~]# docker diff CONTAINER

案例

列出文件区别

使用 docker run 命令,后台运行一个容器。

[root@localhost ~]# docker run -it --name haicoder -d centos
dae6591dc674fb2f2f0c297dccaf474202770de2c3f26e14713ba63156b3e225

使用 docker diff 命令,查看刚创建的 docker容器文件变化。

[root@localhost ~]# docker diff haicoder

此时,命令行终端显示如下图所示:

在这里插入图片描述

我们看到,容器内部的 /run 目录被修改了,并且在 /run 目录新创建了一个文件 secrets。

使用 **docker kill ** 和 docker rm 命令,删除所有容器。

[root@localhost ~]# docker kill `docker ps -qa` ; docker rm `docker ps -aq`

文件没有变化

使用 docker create 命令,创建一个容器。

[root@localhost ~]# docker create -it centos
8aa4a503a4dae352cc92114eff49235ee792c68535b2513649906abce89cc71b

使用 docker diff 命令,查看刚创建的 docker容器文件变化。

[root@localhost ~]# docker diff 8aa4a503a4da

此时,命令行终端显示如下图所示:

在这里插入图片描述

我们看到,容器没有任何修改,因为我们只是创建了容器,并没有运行。

使用 docker kill 和 docker rm 命令,删除所有容器。

[root@localhost ~]# docker kill `docker ps -qa` ; docker rm `docker ps -aq`

docker diff命令总结

docker diff 命令用于比较一个 Docker容器不同版本提交的文件差异。

docker diff命令会列出 3 种容器内文件状态变化(A - Add, D - Delete, C - Change )的列表清单。

<think>好的,我现在需要处理用户的新请求。用户之前询问了关于CI/CD的内容,现在他明确表示想学习Python,并且未来想转向测试开发,同时希望使用Markdown格式的回复,但强调内容不需要涉及CI/CD。首先,我需要确认用户的具体需求。 用户提到“输出文本格式markdown”,这可能意味着他希望得到一个结构清晰、分点明确的指南,用Markdown格式呈现。同时,用户当前的目标是学习Python,并进一步转向测试开发,因此我的回复需要覆盖Python基础、测试开发相关知识、学习资源以及学习路径建议。 接下来,我需要分析用户可能的背景。用户之前对CI/CD感兴趣,现在转向测试开发,这可能意味着他在软件开发和DevOps领域有一定基础,或者正在寻找职业发展的方向。测试开发通常需要自动化测试、框架使用、持续集成等技能,但用户特别指出不要涉及CI/CD,所以重点应放在Python基础和测试框架上。 用户的需求可能包括:如何从零开始学习Python,Python在测试开发中的应用,推荐的学习资源,以及如何规划学习路径。此外,用户可能需要了解测试开发的具体技能,如单元测试、接口测试、UI自动化测试等。 我需要确保回答结构清晰,分步骤引导用户。首先介绍Python基础,包括语法、数据结构、函数、模块等。然后转向测试开发,涵盖测试框架如unittest和pytest,以及自动化工具如Selenium和Appium。提供学习资源如书籍、在线课程和实践项目,并给出明确的学习路径建议。 需要注意的是,用户可能已经有一定的编程基础,但作为测试开发的起点,可能需要从基础开始巩固。同时,避免涉及CI/CD相关内容,但测试开发中的自动化测试部分可能需要间接提到持续测试,不过根据用户要求,应避免深入。 需要验证回答是否符合用户的所有要求:使用Markdown格式,内容专注于Python和测试开发,结构清晰,分步骤指导,资源推荐可靠。同时,要检查是否有遗漏的部分,例如测试开发中的最佳实践或常见工具链的详细介绍。 最后,确保语言简洁明了,适合自学,并提供鼓励的话语,帮助用户保持学习动力。可能需要提醒用户实践的重要性,尤其是在测试开发中,项目经验是关键。</think>```markdown # Python学习路径与测试开发方向指南 ## 一、Python基础快速入门 ### 1. 核心语法要点 ```python # 变量与基础类型 name = "测试工程师" score = 99.5 is_passed = True # 条件控制(注意冒号和缩进) if score >= 90: print("优秀") elif score >= 60: print("合格") else: print("继续努力") # 循环结构示例 for i in range(3): # 输出0,1,2 print(f"当前计数:{i}") # 列表推导式(快速生成数据) squares = [x**2 for x in range(5)] # [0,1,4,9,16] ``` ### 2. 必须掌握的数据结构 | 类型 | 特点 | 测试开发典型应用场景 | |------------|-----------------------|------------------------------| | 字典dict | 键值对存储 | 接口测试的参数构造 | | 集合set | 自动去重 | 测试用例去重处理 | | 元组tuple | 不可变序列 | 测试配置项的存储 | | 列表list | 有序可变集合 | 测试数据驱动 | ### 3. 函数与模块化编程 ```python # 定义带类型提示的函数 def calculate_tax(income: float, rate: float = 0.1) -> float: """计算税费(默认税率10%)""" return income * rate # 模块导入规范 import pytest # 第三方库 from utils import logger # 自定义模块 ``` ## 二、测试开发核心技术栈 ### 1. 测试框架三剑客 1. **unittest**(官方标准库) ```python import unittest class TestStringMethods(unittest.TestCase): def test_upper(self): self.assertEqual('foo'.upper(), 'FOO') # 断言验证 ``` 2. **pytest**(业界主流选择) ```python # 使用fixture实现测试准备/清理 @pytest.fixture def database_conn(): conn = create_connection() yield conn # 测试执行阶段 conn.close() def test_query(database_conn): # 自动注入fixture assert len(database_conn.query("SELECT * FROM users")) > 0 ``` 3. **Robot Framework**(关键字驱动) ```robotframework *** Test Cases *** 登录功能测试 Open Browser http://example.com Chrome Input Text id=username testuser Input Text id=password secret Click Button login Page Should Contain 欢迎回来 ``` ### 2. 自动化测试类型 ```mermaid graph TD A[自动化测试] --> B[接口测试] A --> C[UI自动化] A --> D[性能测试] B -->|工具| E[requests + pytest] B -->|框架| F[Postman自动化] C -->|Web| G[Selenium] C -->|APP| H[Appium] D -->|工具| I[Locust] D -->|分析| J[性能瓶颈定位] ``` ## 三、学习资源推荐 ### 1. 经典书籍 - 《Python编程:从入门到实践》Eric Matthes - 《测试驱动的Python开发》Harry Percival - 《Python自动化测试实战》Unmesh Gundecha ### 2. 在线实践平台 1. [LeetCode](https://leetcode.cn/)(算法基础训练) 2. [Test Automation University](https://testautomationu.applitools.com/)(免费测试课程) 3. [RealPython](https://realpython.com/)(项目式学习) ## 四、学习路径建议 ```text 第1-2月:Python基础 → 文件操作 → 异常处理 → 面向对象 第3月: 单元测试编写 → pytest框架 → 测试报告生成 第4月: Selenium Web自动化 → PageObject模式 第5月: 接口测试开发 → Requests库 → Swagger解析 第6月: 搭建测试平台 → Jenkins集成 → 质量监控体系 ``` ## 五、测试开发工程师能力模型 ```diff + 核心能力要求: ! 测试用例设计能力 ! 自动化框架搭建能力 ! 持续集成流水线配置(虽不深入但需了解) + 加分技能: # Docker容器化测试环境 # 性能测试脚本开发 # 测试左移/右移实践 ``` > **实践建议**:从编写第一个`test_`开头的测试函数开始,逐步构建自己的测试工具库。测试开发的关键在于:`测试思维 + 工程化能力`的双重提升。 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

i白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值