Docker复杂命令便捷操作

启动所有状态为Created的容器

要启动所有状态为"created"的Docker容器,可以使用以下命令:

shell 复制代码
docker container start $(docker container ls -aq --filter "status=created")

上述命令执行了以下步骤:

  1. docker container ls -aq 列出了所有容器的容器ID,-a 选项包括了所有容器(包括已停止的容器),-q 选项仅返回容器的ID而不包括其他信息。
  2. --filter "status=created" 使用过滤器选项,仅返回状态为"created"的容器。
  3. docker container start 命令启动了由前一步返回的容器ID列表中的所有容器。

使用上述命令,Docker会依次启动所有状态为"created"的容器。

上述的命令也可能并不能成功启动所有状态为"created"的容器。这是因为在Linux中,命令行对于命令长度有限制,如果容器数量过多,可能会超出该限制而导致命令执行失败。

如果您确实有大量的状态为"created"的容器需要启动,您可以尝试使用循环来启动每个容器。以下是一个示例的Bash脚本:

shell 复制代码
#!/bin/bash

for container_id in $(docker container ls -aq --filter "status=created")
do
  docker container start "$container_id"
done

将以上脚本保存为一个.sh文件,并运行该脚本,它将循环启动每个状态为"created"的容器。

删除所有启动失败的容器

要删除所有启动失败的Docker容器,可以使用以下命令:

shell 复制代码
docker container rm $(docker container ls -aq --filter "status=exited" --filter "status=dead" --filter "status=created")

上述命令执行了以下步骤:

  1. docker container ls -aq:列出所有容器的容器ID,-a 选项包括了所有容器(包括已停止的容器),-q 选项仅返回容器的ID而不包括其他信息。
  2. --filter "status=exited" --filter "status=dead" --filter "status=created":使用过滤器选项,仅返回状态为"exited"、"dead"和"created"的容器。
  3. docker container rm:删除了由前一步返回的容器ID列表中的所有容器。

使用上述命令,Docker会删除所有启动失败的容器,包括已退出、已停止以及创建但尚未启动的容器。

请注意,这将永久删除这些容器,所以在执行此命令之前,请确保您要删除的是确实是启动失败的容器,并且您不再需要它们的数据和状态。而且也可能存在命令过长的问题,可以模仿上一方法!

列出所有启动失败的容器

要列出所有启动失败的Docker容器,可以使用以下命令:

shell 复制代码
docker container ls -a --filter "status=exited" --filter "status=dead"

上述命令执行了以下步骤:

  1. docker container ls -a:列出所有容器的详细信息,包括已停止的容器。
  2. --filter "status=exited" --filter "status=dead":使用过滤器选项,仅返回状态为"exited"和"dead"的容器。

使用上述命令,Docker会列出所有启动失败的容器,包括已退出和已停止的容器。将看到一个表格,其中包含容器的详细信息,如容器ID、映像、创建时间等。

一次性删除多个

要一次性删除多个指定名称的Docker容器,可以使用以下命令:

shell 复制代码
docker container rm docker1 docker2 docker3

上述命令将同时删除名为 "docker1"、"docker2" 和 "docker3" 的容器。

如果您只知道容器的部分名称或者想要使用通配符来删除一组容器,可以使用以下命令:

shell 复制代码
docker container rm $(docker container ls -aq --filter "name=<部分名称>")

将 <部分名称> 替换为要匹配的容器的共同部分。例如,如果要删除所有以 "docker" 为前缀的容器,可以使用以下命令:

shell 复制代码
docker container rm $(docker container ls -aq --filter "name=docker")

上述命令将删除所有以 "docker" 为前缀的容器。

请注意,这将永久删除指定的容器,并且操作不可逆。在执行此命令之前,请确保要删除的是正确的容器。

感谢相遇:

愿明天的阳光为你带来温暖和希望,愿你的努力和付出得到美好的回报。愿你在每一个新的开始中都能找到更多的机会和成功。无论遇到什么困难和挑战,都请记得坚持和勇敢前行。相信明天会是更好的一天,祝福你明天更好!我们一起努力!加油!!!

相关推荐
Pniubi1 小时前
HashMap的扩容和树化边界
java·开发语言
Mikko71 小时前
用 Java 复刻了高中时在塞班上玩的「熔岩矿车」:纯 Swing、零依赖、没有一张图片,一个 jar 双击就能玩
java·游戏开发·swing
知了学历孙老师1 小时前
小自考的校考和统考,出题方和难度差在哪
java·大数据·前端
Java爱好狂.1 小时前
Java初学者如何一周速通SpringBoot!
java·spring boot·后端·spring·高并发·架构师·java面试
秋饼2 小时前
LLM API密钥动态轮换实战:Spring Vault + Spring AI + 多Provider路由
java·ai·技术分享·后端开发
福兮说4 小时前
JSON 格式正确,数据就可靠吗?我用一份自编配置检查类型与空值
java·前端·json
码间留白4 小时前
手把手把 GitHub 推上阿里云 ECS:Actions CI/CD 全链路避坑实录(折腾好几天,到 2 分钟见绿)
运维·阿里云·ci/cd·docker·devops·github actions
Vex2une5 小时前
Docker Desktop WSL2后端:2026年性能调优与避坑实战指南
windows·docker·desktop·gpu容器·容器开发·virtiofs·buildkit
紧跟先前的步伐5 小时前
Go AI Agent 实战 03|Token、上下文窗口与模型调用成本
java·人工智能·golang
程序员老赵6 小时前
Docker 部署青龙面板:轻松搭建定时任务管理平台
前端·docker·开源