web-dev-qa-db-ja.com

デーモンからのDockerエラー応答: "Conflict ... already in use by container"

ここで見つけた指示に従ってQuantum GISを実行するためにDockerを使用しています: docker-qgis-desktop-QGISデスクトップを実行する単純なdockerコンテナー

このエラーメッセージが表示されるようになった先週まで、すべてが正常に動作していました。

デーモンからのエラー応答:競合。 「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

どうすれば修正できますか?

77
marty_c

qgis-desktop-2-4という名前のコンテナがシステムにすでに存在しているようです。以下のコマンドの出力を確認して、実際に存在するかどうかを確認できます。

$ docker ps -a

上記のコマンド出力の最後の列は名前用です。

コンテナが存在する場合は、次を使用して削除します。

$ docker rm qgis-desktop-2-4

または強制的に使用して、

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

そして、新しいコンテナを作成してみてください。

151
Dharmit

私のようなグーグルからここに着く人のために、1つの共有サービスで複数のdocker-composeファイルを使用してコンテナを構築したいだけです:

共有する異なるプロジェクトがある場合があります。データベースDockerコンテナ。最初の実行でのみDB-Dockerを起動し、2番目の実行ではDBが既に実行されていることを検出し、これをスキップする必要があります。このような動作を実現するには、同じnetworkと同じproject。また、dockerコンテナ名は同じである必要があります。

1st: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:-pparam を使用して同じプロジェクトを設定するか、両方のファイルを同じディレクトリに配置します。

docker-compose -p {projectname} up

4
Karl Adler