使用以下命令运行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.

如何避免这种错误?


当前回答

导致

名称相同的容器仍然存在。

解决方案

若要重复使用相同的容器名称,请删除现有的容器:

docker rm <container name>

解释

容器可以存在于以下状态,在此状态下,容器名称不能用于其他容器:

创建 重新启动 运行 停顿了一下 退出 死

你可以通过以下命令查看运行状态的容器:

docker ps

要显示容器的所有状态,并找出容器名称是否被占用,请使用:

docker ps -a

其他回答

我已经通过以下步骤解决了这个问题,希望能有所帮助。

输入docker ps -a列出系统中的所有容器。 检查已初始化docker容器的NAMES部分。 然后输入docker rm——force name_of_container 按照您的意愿安装docker容器。

我有问题使用NIFI,我已经删除和重新安装使用docker。祝你好运。

你有两个选择来解决这个问题…

使用docker rm $(docker ps -aq——filter name=myContainerName)命令删除之前的容器。 或 将当前容器重命名为另一个名称,即将这部分——name registry-v1更改为——name myAnotherContainerName

你得到这个错误是因为容器名(即registry-v1)在过去被另一个容器使用…即使该容器可能已经退出,即(当前没有使用)。

我在docker教程上就遇到过这种情况!我尝试使用的端口被占用,但docker仍然创建..一个图像?一个进程运行docker?我很快就知道了。无论如何,为了选择一个不同的端口,我必须删除旧的映像,然后docker再次运行。

有时候教程可能太过简洁。你想要的是简洁,而不是简练,甚至是简练。

TL:博士;

列出所有容器: Docker ps a 根据id删除相关容器: Docker容器rm <container_id>

你可以使用sudo docker rm YOUR_CONTAINER_ID命令删除它,然后使用sudo docker run… 或者使用sudo docker start YOUR_CONTAINER_ID重新启动一个现有的容器