使用以下命令运行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.
Run Code Online (Sandbox Code Playgroud)
如何防止此错误?
Wal*_*ard 373
我也对此感到困惑.这里有两个相关的命令:
docker run在新容器中运行命令
docker start 启动一个或多个已停止的容器
h3n*_*rik 156
这意味着您已经使用参数启动了过去的容器docker run --name registry-v1 ...
.
在重新创建具有相同名称的容器之前,您需要先删除它docker rm registry-v1
.当该容器运行时,您需要先将其停止,然后才能将其删除docker stop registry-v1
.或者只是为新容器选择一个不同的名称.
要获取现有容器及其名称的列表,只需调用即可docker ps -a
.
Tha*_*han 115
在这里我做了什么,它工作正常.
docker ps -a
Run Code Online (Sandbox Code Playgroud)
docker rm name_of_the_docker_container
Run Code Online (Sandbox Code Playgroud)
mit*_*aul 41
只是为了解释其他人在说什么(我花了一些时间来理解):简单地说,当你看到这个错误时,它意味着你已经有了一个容器,你要做的就是运行它.虽然直觉docker run
应该运行,但事实并非如此.该命令docker run
仅用于第一次启动容器.要运行现有容器,您需要的是什么docker start $container-name
.这要求开发人员创建有意义/直观的命令.
Edw*_*kwu 29
你有2个选项来解决这个问题......
使用该命令删除使用该名称的上一个容器 docker rm $(docker ps -aq --filter name=myContainerName)
要么
--name registry-v1
即将此部分更改 为类似的内容 --name myAnotherContainerName
您收到此错误,因为该容器名称(即registry-v1
)过去被另一个容器使用...即使该容器可能已退出ie(当前未使用).
Mar*_*tin 21
在构建新映像时,您通常希望每次都使用相同的名称运行新容器.我发现最简单的方法是使用--rm选项启动容器:
--rm Automatically remove the container when it exits
Run Code Online (Sandbox Code Playgroud)
例如
docker run --name my-micro-service --rm <image>
Run Code Online (Sandbox Code Playgroud)
可悲的是,它在文档的示例中几乎是随机使用的
小智 19
这是我在 ubuntu 18 上解决这个问题的方法:
$ sudo docker ps -a
对于每个容器,请执行以下操作:
$ sudo docker stop container_ID
$ sudo docker rm container_ID
Rod*_*son 17
原因
仍存在具有相同名称的容器.
解
要重用相同的容器名称,请通过以下方式删除现有容器:
docker rm <container name>
Run Code Online (Sandbox Code Playgroud)
说明
容器可以存在于以下状态,在此期间容器名称不能用于另一个容器:
created
restarting
running
paused
exited
dead
您可以running
使用以下方法查看状态中的容器:
docker ps
Run Code Online (Sandbox Code Playgroud)
要显示所有状态的容器并查明是否采用了容器名称,请使用:
docker ps -a
Run Code Online (Sandbox Code Playgroud)
avi*_*amg 11
问题:您在后台运行同名容器时尝试创建新容器,这种情况会导致冲突。
错误将是这样的:
无法为服务 X 创建容器:冲突。名称 X 已被容器abc123xyz使用。您必须删除或重命名该容器才能重用该名称。
解决方案重命名服务名docker-compose.yml
或删除正在运行的容器并重新构建(此解决方案与Unix/Linux/macOS系统相关):
sudo docker ps -a
sudo docker stop <container_id>
sudo docker rm <container_id>
Run Code Online (Sandbox Code Playgroud)
或者
sudo docker rm --force <container_id>
Run Code Online (Sandbox Code Playgroud)
don*_*lei 10
你可以用命令删除它sudo docker rm YOUR_CONTAINER_ID
,然后运行一个新容器sudo docker run ...
; 或重新启动现有容器sudo docker start YOUR_CONTAINER_ID
我已通过执行以下步骤解决了该问题,希望对您有所帮助。
docker ps -a
以列出系统中的所有容器。docker rm --force name_of_container
我在使用 NIFI 时遇到问题,我已经使用 docker 删除并重新安装。祝你好运。
OP的问题是错误。删除状态并不是唯一的解决方案,甚至不是一个好的解决方案。问题是docker run
不可重入,并且docker start
无能为力run
。所以我们必须将它们结合起来。
例如,要运行 Postgres 而不破坏以前的状态,请尝试以下操作:
docker start postgres || docker run -d -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=password postgres:13-alpine
Run Code Online (Sandbox Code Playgroud)
我遇到了这个问题,当我运行docker rm
(通常有效)时,我会得到:
错误:没有这样的图像
最简单的解决方案是通过运行删除所有停止的容器:
docker container prune
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
243796 次 |
最近记录: |