Docker:为什么 --rm 在我退出容器时不删除它

Tms*_*s91 4 docker

我在 Windows10 上运行 Docker。

\n

将 --rm 添加到 docker 容器运行命令应该会在我退出容器时删除我的容器,但从一段时间以来,如果我输入

\n
docker container run -p 80:80 --rm nginx\n
Run Code Online (Sandbox Code Playgroud)\n

我明白了

\n
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration\n/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/\n/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh\n10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf\n10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf\n/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh\n/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh\n/docker-entrypoint.sh: Configuration complete; ready for start up\n
Run Code Online (Sandbox Code Playgroud)\n

nginx 在我的 docker-machine IP 地址上运行良好,但是如果我输入

\n
ctrl+C\n
Run Code Online (Sandbox Code Playgroud)\n

我检查我的容器,docker container ls发现容器仍在运行:

\n
$ docker container ls\nCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES\n012963897aa4        nginx               "/docker-entrypoint.\xe2\x80\xa6"   2 minutes ago       Up 2 minutes        0.0.0.0:80->80/tcp   affectionate_dhawan\n
Run Code Online (Sandbox Code Playgroud)\n

为什么?

\n

iBu*_*Bug 8

添加--rm到 docker 容器运行命令应该在我退出时删除我的容器。

这是一种误解。该标志告诉 Docker在停止时--rm删除容器。

我发现您没有向docker container run命令传递任何额外的标志,因此我假设您在启动容器后附加到容器。与容器分离不会自动停止它,除非容器是使用-i标志启动的,该标志应该使用该运行命令自动将 stdin/stdout 连接到容器。

要删除以标志开头的容器--rm,只需简单地docker stop对其进行拍摄,它就会消失。