来自守护程序的Docker错误响应:“冲突...已被容器使用”

vzgqcmou  于 2022-11-02  发布在  Docker
关注(0)|答案(7)|浏览(234)

我一直在我的PC上使用Docker运行Quantum GIS,我在这里找到了以下说明:docker-qgis-desktop - A simple docker container that runs QGIS desktop
一切都运行良好,直到上周,当我开始得到这个错误消息:

Error response from daemon: Conflict. 
The name "qgis-desktop-2-4" is already in use by container 235566ae17b8. 
You have to delete (or rename) that container to be able to reuse that name.

尽管我在这个站点上搜索了一些线索,但我并不完全确定这意味着什么。在此之前我没有更改任何内容,并且使用以下命令成功地启动了容器:

sudo docker run --rm --name="qgis-desktop-2-4"     -i -t     -v ${HOME}:/home/${USER}     -v /tmp/.X11-unix:/tmp/.X11-unix     -e DISPLAY=unix$DISPLAY     kartoza/qgis-desktop:latest

我该如何解决这个问题?

ncecgwcz

ncecgwcz1#

看起来系统中已经存在一个名为qgis-desktop-2-4的容器。您可以检查以下命令的输出来确认它是否确实存在:

$ docker ps -a

上述命令输出的最后一列是名称。
如果容器存在,请使用以下命令删除它:

$ docker rm qgis-desktop-2-4

或者强行使用,

$ docker rm -f qgis-desktop-2-4

然后尝试创建一个新容器。

wwodge7n

wwodge7n2#

代替命令:docker run
您应该用途:

docker start**CONTAINER ID**

因为容器已存在
More info

tmb3ates

tmb3ates3#

我得到这个错误相当多,所以现在我做一个批删除所有未使用的容器一次:

docker container prune

添加-f以强制删除而不提示。
要列出所有未使用的容器(不删除):

docker container ls -a --filter status=exited --filter status=created

请参阅here更多示例,了解如何修剪其他对象(网络、卷等)。

0x6upsns

0x6upsns4#

对于像我这样从google登陆到这里的人来说,他们只想使用多个docker-compose文件和一个共享服务来构建容器:
有时您有不同的项目会共享例如数据库Docker容器。只有第一次运行时才应启动DB-Docker,第二次运行时应检测到数据库已在运行并跳过此操作。要实现此行为,我们需要Docker位于同一网络和同一项目中。此外,Docker容器名称需要相同。

  • 1st:* 在docker-compose中设置相同的网络和容器名称

项目1中对接器-排版:

version: '3'

services:
    service1:
        depends_on:
            - postgres
        # ...
        networks:
            - dockernet

    postgres:
        container_name: project_postgres
        image: postgres:10-alpine
        restart: always
        # ...
        networks:
            - dockernet

networks:
    dockernet:

项目2中对接器-排版:

version: '3'

services:
    service2:
        depends_on:
            - postgres
        # ...
        networks:
            - dockernet

    postgres:
        container_name: project_postgres
        image: postgres:10-alpine
        restart: always
        # ...
        networks:
            - dockernet

networks:
    dockernet:
  • 2nd:* 使用-p参数设置同一个项目,或者将两个文件放在同一个目录中。

docker-compose -p {projectname} up

flseospp

flseospp5#

以下命令将解决此问题

docker rm -f container_name
umuewwlo

umuewwlo6#

最新的kartoza/qgis-desktop没有问题
我跑了

docker pull kartoza/qgis-desktop

紧接着

docker run -it --rm --name "qgis-desktop-2-4" -v ${HOME}:/home/${USER} -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY kartoza/qgis-desktop:latest

我确实尝试了多次,没有冲突错误-你必须事先退出应用程序。另外,请注意参数确实略有不同。

qlzsbp2j

qlzsbp2j7#

我在splunk开发服务器上执行docker run时遇到了这个错误。以下步骤很方便:
1.执行:docker container ls -a
1.从“NAMES”列中获取containerName,即步骤1的输出。
1.执行:docker restart <containerName>

zz2j4svz

zz2j4svz8#

这是没有意义的,为什么要声称一个容器存在,如果它不是创造出来的?
我陷入了僵局,甚至没有创建容器,errp仍然存在

相关问题