[linux] 데몬의 도커 오류 응답 :“컨테이너가 이미 컨테이너에서 사용 중입니다”

PC에서 Docker를 사용하여 여기에서 찾은 다음 지침으로 Quantum GIS를 실행했습니다. docker-qgis-desktop-QGIS 데스크탑을 실행하는 간단한 도커 컨테이너

이 오류 메시지가 나타나기 시작한 지난 주까지 모든 것이 제대로 실행되었습니다.

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

이 문제를 어떻게 해결할 수 있습니까?



답변

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

다른 객체 (네트워크, 볼륨 등)를 제거하는 방법에 대한 자세한 예는 여기를 참조 하십시오 .


답변

나처럼 구글에서 여기에 착륙하고 하나의 공유 서비스로 여러 도커 작성 파일을 사용하여 컨테이너를 만들고 싶은 사람들 :

때로는 데이터베이스 도커 컨테이너와 같은 다른 프로젝트를 공유하는 경우가 있습니다. 첫 번째 실행 만 DB-Docker를 시작하고 두 번째 실행은 DB가 이미 실행 중임을 감지하고 건너 뜁니다. 이러한 동작을 달성하려면 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:

2 차 : -p param을 사용하여 동일한 프로젝트를 설정 하거나 두 파일을 같은 디렉토리에 두십시오.

docker-compose -p {projectname} up


답변