如何优雅地删除Docker镜像和容器(超详细)

article/2025/10/11 6:08:06

一、前言

 
  大家是怎么删除Docker中的镜像和容器的呢,有没有考虑过如何优雅地删除呢?本教程详细指导如何在优雅地删除Docker容器和镜像。如需了解如何在Centos7系统里面安装Docker,可以参考教程【最新Docker在Centos7下安装部署(参考官方教程文档)】
 
  本文由 @大白有点菜 原创,请勿盗用,转载请说明出处!如果觉得文章还不错,请点点赞,加关注,谢谢!
 

二、优雅删除镜像(推荐做法

 

1、查看Docker要删除的镜像,如目标版本为stable-perlNginx,镜像ID(IMAGE ID)为 df1998569adb

docker images

查看Docker要删除的镜像

 

2、使用命令“docker rmi 镜像ID”删除Nginx(stable-perl)的镜像,只取“IMAGE ID”的前3个字符即可。

docker rmi df1

使用命令“docker rmi 镜像ID(IMAGE ID)”删除指定的镜像 
  报错内容如下,意思是镜像(df1)存在使用中的容器(f66),不能强制删除镜像。官方的意思是要先停止容器运行,再进行镜像的删除操作吗?

Error response from daemon: conflict: unable to delete df1998569adb (cannot be forced) - image is being used by running container f6678f2821c7

 

3、查看Docker运行中的容器,如容器 nginx:stable-perl ,容器ID为 f66

docker ps

查看Docker运行中的容器
 

4、先停止nginx:stable-perl容器(f66)运行,再去删除Nginx(stable-perl)镜像(df1)

(1)停止容器(f66)运行。

docker stop f66

(2)删除镜像(df1)。

docker rmi df1

停止容器(f66)运行,再去删除镜像(df1) 
  What?都已经停止容器(f66)运行了,删除镜像(df1)怎么还报错啊!?其实,只停止容器的正常运行还不行,还有最重要的一步没做:删除容器

Error response from daemon: conflict: unable to delete df1998569adb (must be forced) - image is being used by stopped container f6678f2821c7

 

5、查看Docker所有容器的状态(包含运行中的和已停止的),“STATUS”为“Exited(0)”代表停止运行。执行删除容器命令“docker rm f66”,删除 nginx:stable-perl 容器,再查看 nginx:stable-perl 容器是否还在列表中。

(1)查看Docker所有容器的状态。

docker ps -a

(2)删除 nginx:stable-perl 容器。

docker rm f66

(3)再查看Docker所有容器的状态,发现 nginx:stable-perl 容器(f66)已经不存在了。

docker ps -a

查看Docker所有容器的状态并删除容器
 

6、删除镜像,再查看所有镜像,发现列表中已经不存在版本为stable-perl的Nginx镜像(df1)。

docker rmi df1

删除镜像(df1)
 

三、优雅删除容器(推荐做法

 

1、查看Docker中运行中的容器,例如 Nginx ,容器ID为 39c,并删除容器。

(1)查看Docker中运行中的容器。

docker ps

(2)删除Nginx容器(39c)。

docker rm 39c

(3)发现会报错,报错内容如下,意思是容器还在运行,不能删除,先停止运行再删除,或直接强制删除。

Error response from daemon: You cannot remove a running container 39cdb69246fdb6b623cff60af5b59e033149b6940bc5e0432c760ea245da81a9. Stop the container before attempting removal or force remove

查看Docker中运行中的Nginx容器并删除
 

2、停止容器(39c),查看所有容器的运行状态。

(1)停止容器。

docker stop 39c

(2)查看所有容器的运行状态(包含运行中的和已停止的)。

docker ps -a

停止容器(39c),查看所有容器的运行状态
 

3、删除容器(39c),查看所有容器的运行状态。

(1)删除容器。

docker rm 39c

(2)查看所有容器的运行状态(包含运行中的和已停止的)。

docker ps -a

(3)容器(39c)已经不存在了,说明被成功删除了。
 
删除容器(39c),查看所有容器的运行状态
 

四、暴力删除镜像和容器(不推荐做法

 

1、经验证,镜像中的容器状态已停止已删除的才能被强制删除,同时对应的容器(d70)也会被删除。若容器还在运行中删除镜像会报错命令“docker rmi”后面加参数“-f”。“image_id”代表镜像ID(IMAGE ID)。

docker rmi -f image_id

先停止容器才能允许镜像被强制删除 
删除出镜像的同时也会删除对应的容器
 

2、无论容器是否正在运行中或者已停止,都可被强制删除!命令“docker rm”后面加参数“-f”。“container_id”代表容器ID(CONTAINER ID)。

docker rm -f container_id

容器被强制删除
 

五、总结

  优雅地删除镜像的最佳做法是:先停止容器,再删除容器,最后删除镜像
 
  优雅地删除容器的最佳做法是:先停止容器,再删除容器


http://chatgpt.dhexx.cn/article/M64KBQUU.shtml

相关文章

AirPlay

最近一直在研究苹果的AirPlay协议。真是个好东西,基本上现在可以把任何屏幕内容,包括音频,视频和屏幕投射到支持AirPlay接收的设备上,目前是Apple TV或者AirExpress。 网上资料很少,比较有用的是这个哥们写的一篇AirPl…

aplay amixer用法详解

aplay aplay -t raw -c 1 -f S16_LE -r 8000 test2.pcm -t: type raw表示是PCM -c: channel 1 -f S16_LE: Signed 16bit-width Little-Endian -r: sample rate 8000 PCM是最raw的音频数据,没有任何头信息。WAV文件就是PCM头信息,头信息就是上述的声道…

aplay amixer arecord说明

arecord声音录制 arecord -l列出声卡和数字音频设备 -D参数用于指定音频设备PCM 以hwx,x开头 根据上面l列出的设备,如果选择tvp5158来录制声音的话那么pcm设备就位hw0,0,如果是tlv320aic3x则pcm设备为hw0,1,sii9135则pcm设备为hw0,2。 声卡号,设备号 -r指定采样频率:5512/8000…

【全志T113-S3_100ask】9-音频输入与输出(amixer、aplay、arecord)

【全志T113-S3_100ask】9-音频输入与输出 背景(一)amixer 的使用(二)amixer 设置音频输出参数(三)使用 aplay 播放音乐(四)使用 arecord 录音 背景 之前查看系统命令,发…

如何使用Aplayer播放器

Aplayer 一、部署 1、Aplayer 官网体验网址:https://aplayer.js.org/ Aplayer的GitHub网址: https://github.com/MoePlayer/APlayer 中文文档手册网址:首页 – APlayer 使用方法很简单,加载Aplayer的js和css,在想…

aplay,arec,amix使用

标准的alsa命令为,aplay,amixer,arecord 如下是高通在mdm9x07芯片上做了客制化的命令 aplay aplay -D hw:0,17 -P &arec arec -D hw:0,17 -P -R 8000 -C 1 &-D card 声卡 -d device 设备 -c channels 通道 -r rate 采样率 -b bits…

Splay

Spaly 众所周知,Splay 是一种平衡二叉查找树(不要告诉我你不知道二叉查找树是什么qwq 不知道什么是二叉查找树的看过来: 关于二叉查找树)。在这篇东西的最后我们也解释了为什么我们需要用到平衡二叉查找树而不是直接查找&#xff…

aplay 源码分析

ffmpeg -formats ffmpeg -sample_fmts ffmpeg -i ../english14.mp3 -ar 44100 -ac 2 -sample_fmt s16 -f wav english14.wav ffmpeg -i ../english14.mp3 -ar 44100 -ac 2 -sample_fmt s16 -f s16le english14.pcm其中针对PCM个数的数据aplay正确的播放格式为: apl…

Qt,Linux: 播放声音(aplay)

Linux下,Qt开发,使用的电脑情况比较复杂,开发机是Intel cpu, 常用的验证机是飞腾(arm)cpu, 客户的目标机也是飞腾(arm)cpu, 但验证机和目标机上情况还不太一样。 需要用到播放声音的功能&#x…

ALSA音频架构 -- aplay播放流程分析

引言 上文ALSA音频架构 – snd_pcm_open函数分析已经获取了aplay中对应的播放API writei_func snd_pcm_writei;,本文将具体分析该API在哪里调用。 aplay处理数据流顺序图 代码详细分析 1、对参数进行解析,存储在全局变量hwparams,配置回调…

《Autosar_MCAL高阶配置》总目录_培训教程持续更新中...

欢迎大家订阅《Autosar_MCAL高阶配置》专栏(可以理解为是Autosar培训教程),献上常用的案例和配置方法。下方整理了相关博文的链接(单击蓝色字体即可跳转),方便大家获取。 本专栏旨在: 扫除Auto…

Autosar MCAL-ADC配置PWM硬件触发采样

文章目录 前言ADC配置AdcGroupRequestSourceAdcGroupTriggSrcAdcHwExtTrigSelectAdcHwGatePinAdcGeneral-AdcHwTriggerApiAdcHwGateSignalAdcHwTrigSignalAdcHwTrigType GtmGtmConnections PWM实际使用总结 前言 在实际项目开发过程中,关于ADC采样,大部…

【学一点英飞凌】AutoSar-MCAL-Gtm-TOM模块

系列文章目录 【英飞凌学习笔记】TC3XX系列GTM模块的基本组成 文章目录 系列文章目录前言一、TOM模块是什么?二、TGC Sub-unit-Global Channel Control(全局控制寄存器)1、触发源2、触发方法3、注意要点4、TGC具体结构 总结 前言 提示&…

【MCAL_CANDriver】-1.5-图解CANFD如何兼容经典Classical CAN 2.0及其解决方案

点击返回「《Autosar_MCAL高阶配置》总目录」 目录 1 图解CANFD网络兼容Classical CAN 1.1 Classical CAN节点接收CANFD帧检出错误原因 1.2 CAN FD升级解决方案选择 2 CANFD对硬件设计要求 END 1 图解CANFD网络兼容Classical CAN 关于CANFD帧和Classical CAN帧结构差异&…

基于EB工具的TC3xx_MCAL配置开发01_WDG模块配置介绍

目录 1.概述2. WDG 配置2.1 General部分配置2.2 WdgSettingsConfig配置2.2.1 配置概述2.2.2 CPU WDG具体配置2.3 WdgDemEventParameterRefs3. WDG配置注意事项1.概述 本篇开始我们基于EB Tresos工具对英飞凌TC3xx系列MCU的MCAL开发进行介绍,结合项目经验对各MCAL外设的开发及…

MCAL 部分配置详情

对CSDN上的MCAL相关文章配置的记录 ,持续更新 英飞凌: Port 模块 DIO: DIO可以看做是Port的使用接口,应用程序是不可以直接操作Port或Pin的,只能通过DIO。DIO的配置也比较简单,其实就是给Pin重新定义了一个名称。 …

Autosar MCAL-ICU输入捕获

文章目录 前言ICUIcuChannelIcuChannelIdIcuDefaultStartEdgeIcuMeasurementModeIcuSignalTypeIcuWakeupCapability子配置项IcuSignalMeasurementIcuSignalMeasurementPropertyIcuDutycycleBufferMarker IcuOptionalApisIcuGetDutyCycleValuesApiIcuSetModeApiIcuSignalMeasure…

Autosar MCAL-SPI配置及使用

文章目录 前言SPI协议基础Autosar SPI专有名词SpiDriverSpiChannelSpiChannelIdSpiChannelTypeSpiDataWidthSpiDefaultDataSpiEbMaxLengthSpiIbNBuffersSpiTransferStart SpiExternalDeviceSpiBaudrateSpiAutoCalcBaudParamsSpiCsIdentifierSpiCsPolaritySpiCsSelectionSpiData…

【AUTOSAR】 MCAL配置说明(二)----MCAL CAN模块配置

CAN CAN 通讯模块配置 主要的配置内容如下: can 模块的时钟源 can busoff, rx, tx的处理方式 映射pin 脚选择 波特率,采样点设置 邮箱配置,接收、发送报文邮箱,标准帧/扩展帧 CanClockConfiguration 配置CAN 模…

Autosar MCAL-ADC详解(二)-基于Tc27x的cfg软件

文章目录 前言AdcHwUnitAdcGroupChannel Emux SelectGroup Access Mode配置结果指针初始化结果访问读取buffer中的结果 Group Buffer MarkerGroup Conversion ModeGroup IdGroup PriorityGroup ReplacementGroup Request SourceAdcGroupTriggSrcAdcHwTrigSignalHw Gate SignalA…