使用以下命令运行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  # Run a command in a **new** container
docker start  # Start one or more stopped containers

其他回答

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

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

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

下面是我在ubuntu 18上解决这个问题的方法:

$ sudo docker ps -a 复制容器ID

对于每个容器,请:

$ sudo docker stop container_ID $ sudo docker rm container_ID

OP的问题是错误。删除状态并不是唯一的解决方案——甚至不是一个好的解决方案。问题是docker运行不能重入,并且docker启动是无效的w/o运行。所以我们要把它们结合起来。

例如,要运行Postgres而不破坏之前的状态,试试这个:

docker start postgres || docker run -d -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=password postgres:13-alpine

我遇到了这个问题,当我运行docker rm(通常工作)时,我会得到:

错误:没有这样的图像

最简单的解决方案是通过运行以下命令删除所有停止的容器:

docker container prune

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