我一直在我的电脑上使用Docker来运行Quantum GIS,我在这里找到了以下说明:Docker - QGIS -desktop -一个简单的Docker容器,运行QGIS桌面

一切都运行良好,直到上周,我开始得到这个错误消息:

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

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

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

我该如何解决这个问题?


当前回答

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

docker container prune 

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

列出所有未使用的容器(未移除):

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

看这里更多的例子如何修剪其他对象(网络,卷等)。

其他回答

下面的命令将解决这个问题

docker rm -f container_name

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

$ docker ps -a

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

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

$ docker rm qgis-desktop-2-4

或者强行使用,

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

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

我在splunk开发服务器上执行docker运行时遇到了这个错误。下面这些步骤很有用:

执行:docker容器ls -a 从步骤1的输出“NAMES”列中获取containerName。 执行:docker restart <containerName>

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

有时候你有不同的项目可以共享,比如一个数据库docker容器。只有第一次运行应该启动DB- docker,第二次应该检测DB已经在运行并跳过这一步。为了实现这样的行为,我们需要docker位于同一个网络和同一个项目中。docker容器名也需要相同。

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

项目1中的Docker-compose:

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中的Docker-compose:

version: '3'

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

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

networks:
    dockernet:

第二步:使用-p param设置同一个项目,或者将两个文件放在同一个目录下。

Docker-compose -p {projectname} up

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

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