使用以下命令运行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 run应该运行它,但它没有。docker命令只用于第一次启动容器。要运行一个现有的容器,你需要docker start $container-name。要求开发人员创建有意义的/直观的命令已经说得够多了。

其他回答

TL:博士;

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

只是解释一下其他人所说的(我花了一些时间来理解),简单地说,当您看到这个错误时,这意味着您已经有了一个容器,您需要做的就是运行它。虽然直觉上docker run应该运行它,但它没有。docker命令只用于第一次启动容器。要运行一个现有的容器,你需要docker start $container-name。要求开发人员创建有意义的/直观的命令已经说得够多了。

我正在学习docker,这也让我。我已经停止使用该名称的容器,因此我认为我可以使用该名称运行一个新容器。

事实并非如此。仅仅因为容器停止了,并不意味着它不能再次启动,并且它保留了所有与创建时相同的参数(包括名称)。

当我运行docker ps -a时,我看到了我在玩的时候创建的所有虚拟测试容器。

没问题,因为我不想再要这些了,我只是做了docker rm containername,此时我的新容器被允许使用旧名称运行。

啊,现在我写完了这个答案,我看到斯拉沃兹对沃尔特·霍华德的回答的评论,建议使用docker ps -a

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

docker run --name registry-v1 ...

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

docker rm registry-v1

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

docker stop registry-v1

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

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

docker ps -a

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

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

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