docker run -it --rm 笔记250624

docker run -it --rm 是一个强大且常用的 Docker 命令组合,特别适合交互式开发和调试场景。以下是详细解析和使用指南:


参数解析

参数作用典型场景
-i保持 STDIN 打开(交互模式)需要输入命令的交互操作
-t分配伪终端(TTY)需要终端交互(如 Bash)
--rm容器退出后自动删除文件系统临时任务,避免残留容器

核心价值

  1. 即时清理
    容器退出后自动删除,避免产生大量停止状态的容器(docker ps -a 显示的无用容器)
  2. 安全实验
    可在容器内自由测试危险操作(如 rm -rf /*),不影响宿主机
  3. 环境一致性
    每次启动都是全新的干净环境(适合 CI/CD 测试)

典型使用场景

1. 临时调试工具链
# 使用最新 Ubuntu 调试网络问题(退出即删)
docker run -it --rm ubuntu bash -c "apt update && apt install -y curl && curl example.com"
2. 语言环境快速测试
# 测试 Python 代码(不污染本地环境)
docker run -it --rm python:3.9 python
>>> print("Hello, Docker!")
3. 文件操作沙箱
# 安全解压未知压缩包
docker run -it --rm -v $(pwd):/data alpine sh
/data # unzip suspicious.zip
4. 数据库临时查询
# 单次 SQL 查询(避免残留容器)
docker run -it --rm mysql:8.0 mysql -hdb_host -uroot -p"$PWD" -e "SHOW DATABASES"

进阶使用技巧

1. 组合挂载目录
# 挂载当前目录并安装依赖(退出后容器消失,依赖不残留)
docker run -it --rm -v $(pwd):/app -w /app node:14 npm install
2. 多命令执行
# 在 Alpine 中执行多个命令
docker run -it --rm alpine sh -c "date && echo '测试完成'"
3. 快速清理所有临时容器
# 删除所有已停止的容器(常与 --rm 配合使用)
docker container prune -f

注意事项

  1. 数据持久化
    --rm 不会删除卷(Volumes)或绑定挂载(Bind Mounts)的数据:

    # 安全修改文件(修改会保留在宿主机)
    docker run -it --rm -v $(pwd):/data ubuntu nano /data/file.txt
    
  2. 禁止场景

    • 需要长期运行的服务(如 Web 服务器)
    • 需要保留运行历史或日志的场景
  3. 资源限制
    可配合资源限制使用:

    docker run -it --rm --memory=500m --cpus=0.5 python
    

与常规启动的对比

特性docker run -it --rm普通 docker run -d
容器生命周期退出即销毁需手动停止/删除
磁盘空间自动清理累积停止容器占用空间
环境状态每次启动都是全新环境保留之前状态
适用场景调试/测试/临时任务长期运行服务

经典工作流示例

# 1. 调试构建失败问题
docker run -it --rm -v $(pwd):/src buildpack-deps make test# 2. 检查容器内进程
docker run -it --rm busybox top# 3. 临时 HTTP 测试服务
docker run -it --rm -p 8080:80 nginx

掌握 -it --rm 组合能极大提升 Docker 使用效率,特别适合开发、测试和排查问题场景!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/86112.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/86112.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/86112.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解锁阿里云AnalyticDB:数据仓库的革新利器

AnalyticDB:云数据仓库新势力 在数字化浪潮中,数据已成为企业的核心资产,而云数据仓库作为数据管理与分析的关键基础设施,正扮演着愈发重要的角色。阿里云 AnalyticDB 作为云数据仓库领域的佼佼者,以其卓越的性能、创…

【PX30 Qt 5.15 交叉编译环境搭建完整指南】

PX30 Qt 5.15 交叉编译环境搭建完整指南 (Ubuntu 20.04 → PX30 aarch64) 🎯 项目概览 本指南详细记录了在Ubuntu 20.04上搭建针对Rockchip PX30的Qt 5.15.2交叉编译环境的完整过程,包括实际操作步骤、遇到的问题及解决方案。 目标平台: Rockchip PX3…

深入理解读写锁 ReadWriteLock

在高性能并发编程中,如何有效地管理共享资源的访问是核心挑战之一。传统的排他锁(如ReentrantLock)在读多写少的场景下,性能瓶颈尤为突出,因为它不允许并发读取。Java并发包(java.util.concurrent.locks&am…

Unity Addressable使用之检测更新流程

补充知识 关键文件说明 Addressable打包后会生成多种文件,主要包括 .hash、.json 和 .bundle 文件,它们各自有不同的作用。 .hash 文件(哈希文件) 作用: 用于 版本对比,检查资源是否有更新。存储的是 资…

Elasticsearch 中实现推荐搜索(方案设想)

1. 存储商品数据的数据类型 为了支持推荐搜索,商品数据通常需要包含以下字段: 商品索引结构 PUT /products {"mappings": {"properties": {"product_id": {"type": "keyword" // 商品 ID},"…

Aerotech系列(4)Aerotech.A3200名空间

IconTypeDescriptionAxisMask Represents a selection of axes Controller Represents a controller Allows configuring and c

React Router 是怎么实现灵活导航的?

&#x1f399; 欢迎来到《前端达人 React播客书单》第 21 期。 视频版&#xff08;播客风格更精彩&#xff09; 今天我们不讲 Hook&#xff0c;来拆解前端开发中另一个高频组件&#xff1a;React Router 的进阶导航模式。 你可能用过 <Link> 或 <Route>&#xff0…

Modbus TCP转Profibus DP网关与JF - 600MT 称重变送器轻松实现数据互换

Modbus TCP转Profibus DP网关与JF - 600MT 称重变送器轻松实现数据互换 在工业自动化领域&#xff0c;不同设备之间的通信与数据交互至关重要。Modbus TCP转Profibus DP网关作为连接不同协议设备的关键桥梁&#xff0c;发挥着不可或缺的作用。本文将以JF - 600MT称重变送器与3…

聊聊 SQL 注入那些事儿

相信大家对于学校们糟糕的网络环境和运维手段都早有体会&#xff0c;在此就不多做吐槽了。今天我们来聊一聊SQL注入相关的内容。 何谓SQL注入&#xff1f; SQL注入是一种非常常见的数据库攻击手段&#xff0c;SQL注入漏洞也是网络世界中最普遍的漏洞之一。大家也许都听过某某学…

多传感器融合

目录 多传感器融合 多传感器融合的方向 传感器融合方案介绍 LOAM LIO-SAM LVI-SAM 多线激光雷达性质 什么是运动畸变 两步优化的帧间里程记 IMU 器件介绍及选型建议 IMU 标定方法简介 视觉里程计 VS 激光里程计 LVI-SAM 激光视觉融合思路简介 多传感器融合工程实践经验与技巧 多…

Auto-GPT vs ReAct:两种智能体思路对决

目录 Auto-GPT vs ReAct&#xff1a;两种智能体思路对决 &#x1f9e0; 一、智能体的演化背景 &#x1f9e9; 二、Auto-GPT&#xff1a;自循环的执行体 &#x1f50d; 三、ReAct&#xff1a;推理 行动的交错协同 ⚔️ 四、对比总结 &#x1f6e0; 五、你该选谁&#xff…

本地部署大模型性能测试,DeepSeek-R1-0528-Qwen-8B 依然是我的不二之选

大家好&#xff0c;我是 ai 学习的老章 介绍一个大模型并发性能测试工具 看一下我高频使用的&#xff0c;在2*4090显卡上部署的 DeepSeek-R1-0528-Qwen-8B 性能如何 _我_特别喜欢的三个DeepSeek版本 DeepSeek-R1-0528 蒸馏 Qwen3:8B 大模型&#xff0c;双 4090 本地部署&am…

华为云Flexus+DeepSeek征文|华为云 Dify 高可用部署教程:CCE 容器集群一键构建企业级智能应用

前言 在数字化转型加速的企业级应用场景中&#xff0c;构建高可用智能平台已成为业务创新的核心驱动力。本文深度解析基于华为云CCE容器服务的Dify智能应用部署实践&#xff0c;揭示如何通过云原生架构与AI技术的深度融合&#xff0c;实现企业知识管理、智能客服等场景的敏捷落…

Linux 多进程间通信(IPC)详解

在 Linux 系统中,多进程通信(Inter-Process Communication, IPC) 是实现多个进程之间数据交换和同步的重要机制。由于每个进程拥有独立的地址空间,因此需要借助特定的系统机制来实现信息共享。 📌 Linux 下常见的 6 种进程间通信方式 管道(Pipe)命名管道(FIFO)消息队…

服务器数据恢复——异常断电导致服务器故障的数据恢复案例

服务器数据恢复环境&#xff1a; 某服务器上有一组由12块硬盘组建的raid5磁盘阵列。 机房供电不稳定导致机房中该服务器非正常断电&#xff0c;重启服务器后管理员发现服务器无法正常使用。 意外断电可能会导致服务器上的raid模块损坏。 服务器数据恢复过程&#xff1a; 1、将故…

微信小程序中 rpx与px的区别

在微信小程序中的rpx比px方便的多 <!--pages/welcome/welcome.wxml--> <!--rpx替换px--> <image style"width:200rpx;height: 200rpx"src"/images/avatar/3.png"></image> <text>你好&#xff0c;冻梨</text> <but…

python3实现QQ官方机器人回调验证

考虑到第三方的机器人现在越来越难维持了&#xff0c;来捣鼓一下官方的机器人。虽然官方藏着掖着不肯开放很多功能&#xff0c;但起码能用。官方机器人的优点是稳定&#xff0c;只要申请成功&#xff0c;且你自己不乱搞&#xff0c;基本不存在被封的可能&#xff0c;缺点是藤子…

基于Vue3+TS的自定义指令开发与业务场景应用

文章目录 1. 前言2. 基础概念与优势​3. Vue3TS自定义指令的创建与注册​3.1. 创建自定义指令​3.2. 注册自定义指令​ 4. 实际场景示例​4.1. 权限指令控制​4.2. 图片懒加载指令​ 5. 优化与注意事项​ 1. 前言 在 Vue3 的开发生态中&#xff0c;自定义指令是一项极为灵活且…

Elasticsearch 索引文档的流程

Elasticsearch 索引文档的流程是一个分布式、多阶段的过程&#xff0c;涉及客户端请求、路由、主副本同步及持久化等步骤&#xff0c;具体流程如下&#xff1a; 一、客户端请求与路由 1.1 文档接收与路由计算‌ 客户端通过 REST API 发送文档写入请求&#xff0c;需指…

【unity】批量剔除图片四周空白像素的工具

摘要&#xff1a;Unity图片空白像素批量处理工具 该工具提供两种方式批量剔除图片空白像素&#xff1a; 静态处理类&#xff1a;提供TrimTexture方法&#xff0c;可读取纹理像素数据&#xff0c;计算非透明区域边界&#xff0c;生成裁剪后的新纹理&#xff1b;SaveTexture方法…