我正在try 删除docker容器(如果存在).我正在使用退出代码状态判断此操作是否成功.但它在不同的机器上返回不同的退出代码.知道这里发生了什么吗.

# First machine
$ docker ps -a
CONTAINER ID   IMAGE                                          COMMAND                  CREATED        STATUS        PORTS                                                                                                          NAMES
$ docker rm -f temp
Error: No such container: temp
$ echo $?
0
# os details
$ uname -a
Linux test-ubuntu 5.4.0-117-generic #132~18.04.1-Ubuntu SMP Thu Jun 2 23:36:48 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

第二台机器(故障 case )

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
$ docker rm -f temp
Error: No such container: temp
$ echo $?
1
$ uname -a
Linux test-jetson 4.9.253-tegra #1 SMP PREEMPT Sun Jan 2 01:44:04 PST 2022 aarch64 aarch64 aarch64 GNU/Linux

第三台机器

$ docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
$ docker rm -f temp
Error: No such container: temp
$ echo $?
0
$ uname -a
Linux my-2nd-jetson 4.9.253-tegra #1 SMP PREEMPT Mon Jul 26 12:19:28 PDT 2021 aarch64 aarch64 aarch64 GNU/Linux

推荐答案

这可能是因为机器有不同版本的docker.根据this github问题:

当使用带有-f/--force选项的docker-rm/docker-container-rm时,try 删除不存在的容器应打印警告,但应返回零退出代码("成功").

但是现在这个问题已经解决了,在最新版本中,你不应该面对这种行为.

Linux相关问答推荐

通过shell 脚本基于AM/PM对日期时间字段进行排序

如何调试tokio任务挂起的位置?

Linux TTY 操作顺序

Qt会泄漏内存吗?

为什么 perf stat 不计算 cycles:u 在 BIOS 中禁用超线程的 Broadwell CPU 上?

如何从 AWK 中的 CSV 列中获取中值? (Linux)

在 bash 中解析变量

Azure Nvidia 中的 apt-update 给出公钥错误

为什么 8 位字符串文字可以包含多字节字符,而 char 向量不能?

如何在 AWS Linux 服务器上实现虚拟主机?

未找到框架.NETFramework,Version=v4.7.1的参考程序集

如何有效地使用 grep?

我想为 Linux 内核做贡献

如何在 Linux 中创建高分辨率计时器来测量程序性能?

如何在第一个错误时停止 xargs?

从命令行导入 PostgreSQL CSV

docker compose:加载共享库时出错:libz.so.1:无法从共享对象映射段:不允许操作

仅当文件存在于 shell 脚本中时才移动

libaio.so.1:无法打开共享对象文件

当系统说当前在进程中使用时,如何在linux中删除用户