DockerでDB環境を構築する理由が分からない。
dockerでDBを環境を構築する意味が分かりません
PCに直接mysql等をインストールしても
環境構築できるのに、なぜdockerでコンテナを作成してから接続するんですか??
複数プロジェクトの異なる開発環境を構築したい←PCの環境変数がかぶっちゃうとか干渉しないようにとかそういうことですか??
PCに直接mysql等をインストールしても
環境構築できるのに、なぜdockerでコンテナを作成してから接続するんですか??
複数プロジェクトの異なる開発環境を構築したい←PCの環境変数がかぶっちゃうとか干渉しないようにとかそういうことですか??
dockerを使えばvirtualboxのような仮想端末のように、自分のパソコンから切り離れた環境が動かせるので色々なプロジェクトを作っていく時にはとても便利です。
今dockerを使わなくても、自分のパソコンに全部入れればいいじゃないか?と思うのならそれでいいと思います。
どんどんいろんな事をやっていくに従い、同じmysqlでもバージョン違いを同時に動かしたかったりする時などが来てしまい、途端に全部を自分のパソコン環境上で実行するのが面倒くさくなります。(こっちのバージョンを上げたら、別のプロジェクトは他のバージョンの特定のものに依存しているとか)
rbenv、pyenvなど特定ディレクトリで特定バージョンが動くといったような回避策を使うことも出来ますが、そうは出来ないアプリケーションも多々あるので、そうなるとdocker使ったほうが自分のパソコン環境に依存しなくて個々で動くからスッキリしていいよね?となると思います。
MySQLに限らずですが「他の人に同じ環境を共有できる」というメリットがあります。
仮想環境を使用しない場合はドキュメントを作って共有する必要がありますが、こうしたドキュメントが正しく残っていないケースも残念ながらよくあります。
Aさん:「この機能がうまく動かないのですが・・・」
Bさん:「ああ、それはMySQLの設定をこうする必要があるんですよ」
Aさん:(それ手順に書いておいてくれないかな・・・)
最新のDockerfileなどを共有しておくことで、こうした問題を解消できます。
またプロジェクトが大きくなるとメンバーのスキルに差が出てきます。例えばUI/UX担当者はMySQLに詳しくないかもしれません。
こういった場合もDockerを使うことができれば、開発環境を構築して自分の仕事をすることができます。
もちろんDockerを使わずに解決することも可能です。例えば、クラウド上のデータベースを共有する方法です。