我一直在我的 PC 上使用 Docker 运行 Quantum GIS,并按照我在此处找到的以下说明:docker-qgis-desktop - A simple docker container that runs QGIS desktop
直到上周我开始收到此错误消息时,一切都运行良好:
来自守护程序的错误响应:冲突。容器 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
我怎样才能解决这个问题?
看起来系统中已经存在一个名为 qgis-desktop-2-4
的容器。您可以检查以下命令的输出以确认它是否确实存在:
$ docker ps -a
上述命令输出的最后一列是名称。
如果容器存在,请使用以下方法将其删除:
$ docker rm qgis-desktop-2-4
或强行使用,
$ docker rm -f qgis-desktop-2-4
然后尝试创建一个新容器。
而不是命令:docker run
你应该使用:
docker start **CONTAINER ID**
因为容器已经存在
我经常遇到这个错误,所以现在我一次批量删除所有未使用的容器:
docker container prune
添加 -f
以在没有提示的情况下强制删除。
列出所有未使用的容器(不删除):
docker container ls -a --filter status=exited --filter status=created
有关如何修剪其他对象(网络、卷等)的更多示例,请参阅 here。
docker ps -a
列出我上面提到的@peter mortensen 的所有容器。
对于像我这样从谷歌登陆这里并只想使用多个 docker-compose 文件和一个共享服务构建容器的人:
有时你有不同的项目可以共享一个数据库 docker 容器。只有第一次运行应该启动 DB-Docker,第二次应该检测到数据库已经在运行并跳过这个。为了实现这样的行为,我们需要将 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:
2nd: 使用 -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
我确实尝试了多次而没有冲突错误 - 你必须事先退出应用程序。另外,请注意参数确实略有不同。
groupadd: GID '0' already exists useradd: user 'root' already exists No protocol specified Warning: qgis.bin: cannot connect to X server unix:0.0
docker restart
,或docker stop
&docker start
应该可以帮助您。