我正在学习" 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上。我不知道这是不可见的"网络服务器"容器来自。
答案 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,在这种情况下,给出了一个随机名称,因此不存在名称冲突错误。
谢谢!