使用以下命令运行docker注册表总是会抛出一个错误:

dev:tmp me$ docker run \
     -d --name registry-v1 \
     -e SETTINGS_FLAVOR=local \
     -e STORAGE_PATH=/registry \
     -e SEARCH_BACKEND=sqlalchemy \
     -e LOGLEVEL=DEBUG \
     -p 5000:5000 \
     registry:0.9.1
Error response from daemon: Conflict. The name "registry-v1" is already in use by container f9e5798a82e0. You have to delete (or rename) that container to be able to reuse that name.

如何避免这种错误?


当前回答

好吧,所以我也不明白,然后我离开了我的电脑,去做其他的事情,当我回来时,它点击:D

下载一个docker映像文件。Docker pull *image-name*将只从Docker hub中拉出图像而不运行它。 现在,你使用docker运行,并给它一个名字(例如newWebServer)。 docker运行-d -p 8080:8080 -v volume——name newWebServer image-name/version

你可能只需要docker run——name* name* *image*,但是其他的东西很快就会有用。

-d (detached) -表示当用于运行容器的根进程退出时,容器将退出。

-p (port) -指定容器端口和主机端口。内部和外部端口。内部的是容器使用的端口,外部的是你在容器外部使用的端口,如果这是你访问应用程序的方式,它可能是你需要放在浏览器中的端口。

——name(你想给这个容器的实例起什么名字)——你可以有同一个容器的几个实例,它们都有不同的名字,这在你试图测试一些东西的时候很有用。

image-name/version是您想从中创建容器的实际映像。您可以使用docker images -a查看系统上所有映像的列表。您可能有多个版本,因此请确保选择正确的/标记。

-v (volume)——最初可能不需要,但很快你就会希望在容器退出后持久化数据。

好的。docker run刚刚从映像创建了一个容器。如果它没有运行,你现在可以用它的名字启动它:

docker start newWebServer

您可以检查所有容器(它们可能正在运行,也可能没有运行)

docker ps -a

你可以通过container id列中的容器名称或容器id(或者只是容器id的前几个字符)来停止和启动它们(或暂停它们),例如:

docker stop newWebServer

docker start c3028a89462c

并列出你所有的图片,与

docker images -a

简单地说,下载一个图像;Docker运行从它创建一个容器;使用docker Start(名称或容器id)启动它;用docker Stop(名称或容器id)停止它。

其他回答

问题:你试图创建新的容器,而在后台容器的同名正在运行,这种情况会导致冲突。

错误是这样的:

不能为服务X创建容器:冲突。名称X已经被容器abc123xyz使用。您必须删除或删除(或重命名)该容器才能重用该名称。

解决方案在docker-compose中重命名服务名。yml或删除正在运行的容器并重新构建(此解决方案涉及Unix/Linux/macOS系统):

获取所有正在运行的容器sudo docker ps -a 获取特定的容器id 停止并移除重复的容器/强制移除它

sudo docker stop <container_id>
sudo docker rm <container_id>

or

sudo docker rm --force <container_id>

我遇到这个问题是因为我在docker-compose中有两个或多个容器,它们具有相同的container_name。yml文件。

简单的解决方法:找到系统中的docker文件夹,删除。raw文件或较大的docker归档文件。

这意味着您已经在过去使用该参数启动了容器

docker run --name registry-v1 ...

您需要先删除它,然后才能重新创建具有相同名称的容器

docker rm registry-v1

当容器仍在运行时,您需要先停止它,然后才能删除它

docker stop registry-v1

或者直接为新容器选择一个不同的名称。

来获取现有容器及其名称的列表

docker ps -a

我也被这个弄糊涂了。这里有两个相关命令:

docker run  # Run a command in a **new** container
docker start  # Start one or more stopped containers