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

时间:2015-07-28 12:19:43

标签: linux ubuntu docker

我按照我在此处找到的说明使用Docker来运行Quantum GIS:docker-qgis-desktop - A simple docker container that runs QGIS desktop

直到上周我开始收到此错误消息时,一切都运行良好:

  

来自守护程序的错误响应:冲突。名称" qgis-desktop-2-4"已经被容器235566ae17b8使用。您必须删除(或重命名)该容器才能重用该名称。

尽管在这个网站上寻找线索,但我并不完全确定这意味着什么。在此之前我没有改变任何东西,并且已经使用此命令成功启动了容器:

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

我该如何解决这个问题?

5 个答案:

答案 0 :(得分:146)

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

$ docker ps -a

上述命令输出的最后一列是名称。

如果容器存在,请使用以下命令将其删除:

$ docker rm qgis-desktop-2-4

或强行使用,

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

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

答案 1 :(得分:14)

这个错误很多,所以现在我一次批量删除所有未使用的容器:

docker container prune 

添加-f以强制删除而不提示。

要列出所有未使用的容器(不删除):

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

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

答案 2 :(得分:6)

代替命令:docker run

您应该使用:

docker start **CONTAINER ID**

因为该容器已经存在

More info

答案 3 :(得分:4)

对于像我这样从Google登陆到这里的人,只想使用具有一项共享服务的多个docker-compose文件来构建容器:

有时您会共享不同的项目,例如数据库泊坞窗容器。仅第一次运行应启动DB-Docker,第二次应检测到数据库已在运行,并跳过此步骤。为了实现这种行为,我们需要将Docker放置在相同的网络和相同的项目中。另外, docker容器名称必须相同。

第一个:在docker-compose中设置相同的网络和容器名称

docker-compose in project 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:

docker-compose in project 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 param设置相同的项目,或将两个文件放在同一目录中。

docker-compose -p {projectname} up

答案 4 :(得分:0)

最新的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

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