简而言之:我想删除docker映像,但是如果我这样做,它会告诉我不能删除它,因为该映像正在被运行的容器使用。但是据我所知,根本没有容器在运行。
详细信息:我调用docker images-a
查看调用图像。通过这种方式,我确定了要删除的图像ID,并调用docker Image rm{ID}
,其中{ID}是应该删除的字符串(它适用于其他图像,因此到目前为止我非常有信心)。我得到的答复是:
来自守护程序的错误响应:冲突:无法删除{ID}(无法强制)-运行容器08815cd48523正在使用映像(末尾的ID似乎随着每次调用而更改)
这个错误看起来很容易理解,但是如果我调用docker ps-a
,它会显示我没有运行单个容器,因此没有使用指定ID运行的容器。
这个问题发生在一些图像上。但似乎都和库伯内特斯有关。有人知道问题出在哪里吗?
在评论中要求听到docker检查一个不可见的容器(我替换了所有部分,我不确定它是否包含敏感数据与removed_for_post):
[
{
"Id": "Removed_for_post",
"Created": "2021-10-05T07:04:33.2059908Z",
"Path": "/pause",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 3570,
"ExitCode": 0,
"Error": "",
"StartedAt": "2021-10-05T07:04:33.4266642Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:80d28bedfe5dec59da9ebf8e6260224ac9008ab5c11dbbe16ee3ba3e4439ac2c",
"ResolvConfPath": "/var/lib/docker/containers/ Removed_for_post /resolv.conf",
"HostnamePath": "/var/lib/docker/containers/ Removed_for_post /hostname",
"HostsPath": "/var/lib/docker/containers/ Removed_for_post /hosts",
"LogPath": "/var/lib/docker/containers/ Removed_for_post / Removed_for_post -json.log",
"Name": "/k8s_POD_etcd-docker-desktop_kube-system_ Removed_for_post ",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "host",
"PortBindings": {},
"RestartPolicy": {
"Name": "",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"CapAdd": null,
"CapDrop": null,
"CgroupnsMode": "host",
"Dns": null,
"DnsOptions": null,
"DnsSearch": null,
"ExtraHosts": null,
"GroupAdd": null,
"IpcMode": "shareable",
"Cgroup": "",
"Links": null,
"OomScoreAdj": -998,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": [
"no-new-privileges"
],
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"ConsoleSize": [
0,
0
],
"Isolation": "",
"CpuShares": 2,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "/kubepods/kubepods/besteffort/removed_for_Post",
"BlkioWeight": 0,
"BlkioWeightDevice": null,
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": null,
"DeviceCgroupRules": null,
"DeviceRequests": null,
"KernelMemory": 0,
"KernelMemoryTCP": 0,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"OomKillDisable": false,
"PidsLimit": null,
"Ulimits": null,
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0,
"MaskedPaths": [
"/proc/asound",
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware"
],
"ReadonlyPaths": [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
]
},
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/ Removed_for_post -init/diff:/var/lib/docker/overlay2/ Removed_for_post /diff",
"MergedDir": "/var/lib/docker/overlay2/Removed_for_post /merged",
"UpperDir": "/var/lib/docker/overlay2/Removed_for_post /diff",
"WorkDir": "/var/lib/docker/overlay2/Removed_for_post /work"
},
"Name": "overlay2"
},
"Mounts": [],
"Config": {
"Hostname": "docker-desktop",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": null,
"Image": "k8s.gcr.io/pause:3.2",
"Volumes": null,
"WorkingDir": "/",
"Entrypoint": [
"/pause"
],
"OnBuild": null,
"Labels": {
"annotation.kubeadm.kubernetes.io/etcd.advertise-client-urls": "https://192.168.65.4:2379",
"annotation.kubernetes.io/config.hash": " Removed_for_post ",
"annotation.kubernetes.io/config.seen": "2021-10-05T07:04:32.243805800Z",
"annotation.kubernetes.io/config.source": "file",
"component": "etcd",
"io.kubernetes.container.name": "POD",
"io.kubernetes.docker.type": "podsandbox",
"io.kubernetes.pod.name": "etcd-docker-desktop",
"io.kubernetes.pod.namespace": "kube-system",
"io.kubernetes.pod.uid": "removed for Post",
"tier": "control-plane"
}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": " Removed_for_post",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {},
"SandboxKey": "/var/run/docker/netns/default",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "",
"Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"MacAddress": "",
"Networks": {
"host": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": " Removed_for_post ",
"EndpointID": " Removed_for_post ",
"Gateway": "",
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "",
"DriverOpts": null
}
}
}
}
]``
您的容器似乎是由docker compose之类的其他工具创建的,因为我猜它在您的计算机上是本地的。。
这意味着您无法使用docker rm语句轻松停止其创建。
k8s_POD_etcd-docker-desktop_kube-system_Removed_for_post
因此,由于它是kubernetes组件的一部分,只有在不想使用kubernetes时才应该删除它。
通过移除kubernetes或etcd吊舱。
如果docker桌面,应该不是问题。
总之,您的容器是由一个pod创建的,该pod是由kubernetes处理的资源
sudo systemctl restart docker
最后,您应该能够按照问题中的建议移除容器。
我记得用过 几个月前没有问题地链接命令,但现在这不起作用了,我得到了以下输出: 什么改变了?如何在一行中删除所有Docker运行容器?如果有用的话,我正在Windows ;10上使用Docker for Windows(本机与Hyper-V一起使用,而不是与VirtualBox一起使用),我使用的命令在以前的Windows 8 Docker工具箱安装中运行良好。
问题内容: 我希望实用地停止并删除docker容器(如果正在运行)。这是用于构建脚本的。 请看下面的例子。我将如何停止和删除docker容器“ rabbitmq”,如bash脚本中的NAMES列所示。 以下命令将删除容器并执行即时通讯 但是它把它组合成一个我想知道的脚本吗?我认为它看起来像这样。 问题答案: 您可能已经注意到,如果容器不存在或未运行,则退出并显示状态代码以指示失败。这导致您的构建失
我正在运行2个spring boot应用程序:一个客户端和rest-api。客户机与rest-api通信,rest-API与mongodb数据库通信。所有3层都在docker容器中运行。 我启动容器,通常指定docker文件中公开的端口,并将它们映射到主机上的端口,例如:-p 7070:7070,其中7070是docker文件中公开的端口。 当我通过< code > Java-jar[applic
问题内容: 我在CI和CD上创建了Jenkinsfile,Dockerfile,Dockerfile.test到CI和CD,在GitHub上构建了我的服务器API,我在Jenkins上构建了该构建,并且构建成功,并且我的docker在Jenkinsfile阶段也在容器上运行,我创建了用于测试和部署在服务器API上,并使用docker作为容器 我也使用docker-compose在docker上运行
问题内容: 是否可以备份正在运行的Docker容器?该命令适合这样做吗? 问题答案: 一位朋友发表了评论 您好Slava,很抱歉您的问题已关闭。作为记录,Slava谈论的是docker.io,这是Linux容器的运行时。是的,这是一种合适的方法。它将生成整个容器文件系统状态的压缩包,并将其转储到stdout上。所以 将产生可用的tarball。您可以使用以下命令重新导入压缩包 请注意,原始元数据(
问题内容: 我正在服务器上运行多个docker容器,并且需要对所有容器上的存储库执行git pull。 我试过使用此: 但是它会出错: 它曾经工作过,但是后来突然停止工作,没有明显原因(我没有更改任何docker配置) 注意:的输出仅是容器ID: 问题答案: 使用Docker exec可以一次在容器上运行该命令,但是从您要在所有正在运行的容器上运行该命令的问题出发,就可以了。 我假设git已经安装