适用于Mac的Docker。 docker run -d -p 80:80 --name webserver nginx显示另一个具有此名称的容器。但是docker ps显示空列表

时间:2016-08-09 15:24:40

标签: docker containers invisible

我正在学习" Docker for Mac"

$ docker run -d -p 80:80 --name webserver nginx

docker:来自守护程序的错误响应:冲突。名称" / webserver"已经被容器728da4a0a2852869c2fbfec3e3df3e575e8b4cd06cc751498d751fbaa75e8f1b使用。您必须删除(或重命名)该容器才能重用该名称..

但是当我跑步时

$ docker ps

它没有显示列出的容器。

但由于之前的错误消息告诉我有这个容器728da ....

我删除了那个容器

$ dockder rm 728da4a0a2852869c2fbfec3e3df3e575e8b4cd06cc751498d751fbaa75e8f1b

现在我再次运行此声明

$ docker run -d -p 80:80 --name webserver nginx

这次工作正常。

然后我运行$ docker ps,我可以看到列出了这个新容器

$ docker ps

集装箱ID图像命令创建状态端口名称

3ecc0412fd31 nginx" nginx -g' daemon off" 19秒前Up 17秒0.0.0.0:80->80/tcp,443 / tcp webserver

注意:

我正在使用" Docker for Mac"。

但我有#34; Docker Box"以前安装在Mac上。我不知道这是不可见的"网络服务器"容器来自。

2 个答案:

答案 0 :(得分:1)

正如activgeek在评论中所说,容器必须已经停止。 docker ps -a显示已停止的容器。停止的容器仍然保留名称,以及RW层的内容,显示对正在使用的RO图像所做的任何更改。您可以按名称或容器ID引用容器,这可以使键入和脚本更容易。 docker start webserver会重新启动旧容器。 docker rm webserver将删除具有该名称的已停止的容器。

您还可以将容器ID缩写为最短的唯一名称,以节省输入或长时间复制/粘贴。因此,在您的示例中,docker rm 728d也会删除容器。

答案 1 :(得分:0)

Docker入门文档要求学员首先尝试两个语句。

docker run -d -p 80:80 --name webserver nginx

docker run hello-world

我想知道为什么我可以跑

docker run -d -p 80:80 --name webserver nginx

很多次,但如果我跑

docker run hello-world

第二次,我得到名称冲突错误。许多初学者也会想知道。

在你的帮助下,我做了更多搜索,现在我明白了

#pragma omp prallel

我们没有使用--name,在这种情况下,给出了一个随机名称,因此不存在名称冲突错误。

谢谢!