どうも社家畜です。
今回はdockerでの出来事を備忘録として書いておきます。多分転職できたとしたらすぐに出てくるエラーだと思い一応残しておこうかなと。
復習がてら講座の課題を2週目しようとdocker-compose up-dをしたところ
こんなエラーが・・・
AI先生に丸っと翻訳してもらった結果、
「今回作ろうとしているコンテナでlaravel_appっていう名前が競合しているよ」
という内容でした。
一般的な現場の対応の傾向
1. 既存のコンテナを削除する
- 多くの場合、まず既存のコンテナを削除します。
- 理由は、既存のコンテナとの競合を避けるためです。
- docker-compose downやdocker rmコマンドで削除し、新しい設定で再デプロイします。
2. docker-compose.ymlの名前を変更する
- 既存のコンテナと競合している場合に、新規のコンテナで名前を変えることもありますが、
- 基本的には既存の競合を解消→削除してから、新しい設定で立ち上げる方針が優先されることが多いです。
なぜそうなるのか
- シンプルに競合解消できるため。
- 既存のコンテナを削除して、新しい設定で再起動する方が、管理も分かりやすいからです。
まとめ
- 確率が大きいのは:
既存のコンテナを削除して、新しい設定のコンテナを作るです。
docker-compose.ymlの内容は簡単に言うとレシピみたいなもので(解釈が間違っていたらごめんなさい・・・)ここに書かれている内容でコンテナを立ち上げますよということらしい。
同じコンテナでdocker-compose up-dをすると、docker-compose.ymlに設定されている名前を使って立ち上げようとするので、そりゃあ同じ名前になるわなと・・・
ならば今回はコンテナ削除で試してガッテン!
docker rm fe77b1dab2925f3cb9dac9fde1c0bd8a4b4d81e42a341d78df2e82b02dde71f4
上の画像の""で囲まれているやつをはりつけてエンター!
そしてdocker-compose ps-aで保存されている内容を確認すると・・・
やる前
やった後
4つある中で一番下が消えてる!!
成功しました。
これでもう一度docker-compose buildをしてup-dをしてみると
いや次は㏈かよ・・・
docker stop laravel_db
起動しているかもしれないので止めて
docker rm laravel_db
Laravel_dbを単体で消す
これでもう一度docker-compose up-dをしてみると・・・
薄々思ってはいたけど今度はadminerか・・・
ってかこれはもしかしてbuildしたせいで正規のコンテナなのに1回目のコンテナと2回目のコンテナが同じ名前でbuildしたからなったのかも・・・
docker-compose down
で今いるdocker-compose.ymlの管理しているイメージをすべて停止!削除!
おお!停止して消えていくぅううう!
一応docker ps -aで確認っと・・・
少なくなってる!adminerがなんか恐いけど大丈夫でしょ!
いやダメなんかーい!!!!
downして、adminerが残った状態にしました。
個別で
docker rm adminer
を消しました。
全てupになった!
ローカルホストにアクセスするとnot found!!
やっと成功しました。
良かった・・・
まとめ
・docker-compose.ymlはコンテナのレシピ!
・一度up-dしたら最後はdownしといたほうがいい!(エラーがでたコンテナだけ消しても同じレシピで立ち上げたら二重に立ち上がるので結局は別でエラーがでる!)
・downしても消えない奴は個別にrmで消す!
・違うymlでのbuildだったら競合しない!
いやー長かった・・・









