为什么docker会说-d和–rm是运行容器的冲突选项?

一个小问题,但我想在docker run --rm dev中docker run --rm容器,这样我就不必在停止它们之后将它们删除,特别是因为我几乎每次运行都改变命令行参数。

但是,如果我不使用docker run -d我的容器会抽出大量日志到stdout

那么我不能再使用--rm了,因为--rm抱怨:

 [adam@gondor ~]$ docker run --rm -d -p 10040:443 --name rproxy adam-rproxy Conflicting options: --rm and -d 

无可否认,我可以在命令行上运行stop和rm:

docker stop rproxy; docker rm rproxy

但我知道我会忘记,烦恼,开始担心我正在走自闭症谱系!

docker运行选项

Docker在--rm移动到服务器端操作时添加了--rm-dfunction。 这在PR 20848中被覆盖。 在此版本之前,在Docker客户端上处理删除操作,而在分离模式下,客户端不监视容器以检测退出。

您需要在客户端和服务器上至less升级此版本才能使此function正常工作。 我build议升级到17.09,因为这是目前稳定的CE版本 。

我无法重现这一点。

以下分离正常,可以在Docker version 17.09.0-ce, build afdb6d4正常停止(根据需要导致删除):

 docker run --rm -d --name yes alpine:3.7 yes 

我也尝试添加一些端口来更接近你的例子,但这也没有问题。