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

如何避免这种错误?


当前回答

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

其他回答

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

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

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

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

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

只是解释一下其他人所说的(我花了一些时间来理解),简单地说,当您看到这个错误时,这意味着您已经有了一个容器,您需要做的就是运行它。虽然直觉上docker run应该运行它,但它没有。docker命令只用于第一次启动容器。要运行一个现有的容器,你需要docker start $container-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)停止它。

删除所有退出的容器

docker rm $(docker ps -a -f status=exited -q)