Docker for Mac。 docker运行-d -p 80:80 – 名称webserver nginx显示带有这个名字的另一个容器。 但dockerps显示空的列表
我正在学习“Docker for Mac”
$ docker run -d -p 80:80 --name webserver nginx
docker:来自守护进程的错误响应:Conflict。 名称“/ webserver”已由容器728da4a0a2852869c2fbfec3e3df3e575e8b4cd06cc751498d751fbaa75e8f1b使用。 您必须删除(或重命名)该容器才能重用该名称。
但是当我跑步
$ docker ps
它显示没有容器列出。
但由于以前的错误消息告诉我,有这个容器728da ….
我删除了那个容器
$ dockder rm 728da4a0a2852869c2fbfec3e3df3e575e8b4cd06cc751498d751fbaa75e8f1b
现在我再次运行这个声明
$ docker run -d -p 80:80 --name webserver nginx
这次工作正常。
然后我运行$ docker ps
,我可以看到这个新的容器被列出
$ docker ps
容器ID图像命令创build状态端口名称
3ecc0412fd31 nginx“nginx -g”daemon off“19秒前上传17秒0.0.0.0:80->80/tcp,443 / tcp webserver
注意:
我正在使用“Docker for Mac”。
但是之前我在Mac上安装了“Docker Box”。 我不知道这是不是“webserver”容器的来源。
正如在评论中激活的那样,容器必须已经停止。 docker ps -a
显示停止的容器。 停止的容器仍然保存着名称,以及RW层的内容,它显示了对所使用的RO映像所做的任何更改。 您可以通过名称或容器ID来引用容器,这可以使打字和脚本更容易。 docker start webserver
将重新启动旧的容器。 docker rm webserver
会删除一个名字已停止的容器。
您还可以将容器标识符缩写为最短的唯一名称以保存input或长时间复制/粘贴。 所以在你的例子中, docker rm 728d
也将删除容器。
Docker入门文档要求学习者首先尝试两个语句。
docker run hello-world
和
docker run -d -p 80:80 --name webserver nginx
我想知道为什么我可以跑步
docker run hello-world
很多次,但如果我跑
docker run -d -p 80:80 --name webserver nginx
第二次,我得到了名称冲突错误。 许多初学者也会想。
在你的帮助下,我做了更多的search,现在我明白了
docker run hello-world
,
我们没有使用–name,在这种情况下,给出了一个随机的名字,所以不会有名称冲突的错误。
谢谢!