Error response from daemon: conflict: Dockerコンテナを作成しようとしたらコンフリクトが起きたので解決法


概要

コンテナを立ち上げるときにエラーが起きたので、その対処法とコマンドをまとめておきます。

エラー文

ターミナル
Error response from daemon: Conflict. The container name "コンテナ名" is already in use by container "コンテナID". You have to remove (or rename) that container to be able to reuse that name.

コンテナがすでにあるので、名前を変更するか削除するかしてください。要するに同じコンテナ名は複数つくれないということですね!!

仮説

  • 動作しているコンテナ一覧を見る。
  • 動作を止め、コンテナ削除。

必要になるコマンド

Dockerコマンド 備考
docker ps 動作中コンテナ一覧
docker ps -a   コンテナ一覧
docker stop コンテナID 動作しているコンテナをストップ
docker rm (-f) コンテナID 停止しているコンテナを削除 ※-fオプションを付けると強制削除

注意が必要なのが、コンテナをストップしてからでないとコンテナ削除ができないこと。
動作しているコンテナを停止コマンドで停止させたあと、そのまま削除するのではなく、動作していたコンテナが停止できたのか?を確認をしてから削除する。また、削除に成功したあとも削除できたのか確認する。
もしくは-fオプションで強制的に削除してしまえばコンテナ起動中でも削除可能。

このようにいちいち確認する癖をつけておけば後で痛い目に合う確率が減ると思いました。

再度コンテナ作成

Cookieが大きいというエラー。読み取るとおそらくCookieが溜まってるから削除して!!という感じだと思います。
早速溜まったCookieを削除し挙動を確認。

仮説通りnginxコンテナを実行することができました!!

まとめ

  • コンテナは同じ名前のものを作ることができない。
  • コンテナ削除とイメージ削除で少しコマンドが違う(rmi か rm)ので削除に失敗しても落ち着く。
  • rmiiはイメージのことでiremoving(取り除く)ということ。
  • コマンドを打ったあと挙動が正しいか確認する癖をつける。

参考文献

この記事は以下の情報を参考にして執筆しました。