Dockerってなんで使うの?
プログラミングを始めたばかりの人や、実務経験がない方は同じ疑問を持っていると思います。
僕も同じく、実務を始めるまでは、Dockerを使う理由やメリットが分かりませんでした。
「ただめんどくさいだけじゃない?」
こんな感じでした。
しかし、いざ実務でDockerを使うと、最初はコマンドや仕組みを覚えることが面倒ですが、どんどんDockerの凄さを実感します。
そこで、以下では僕が感じたメリットについて書きます。
Dockerのコンテナやイメージというような言葉は使いません。
そのため、知っている人は「これはコンテナのことだな」のように考えて読んでみてください。
Dockerを使うメリット
データやプログラムを分けられる
これはDockerの性質でもあり、メリットとも言えます。
これを読んでも、初心者や未経験の場合は
「分けられるからどうしたの?」
となりますよね。
では、想像してください。
就職・転職に成功して、A社で働くことになり、あなはそのA社で2つのプロジェクトに関わることが決まっています。
しかし、各プロジェクトで開発環境が異なります。
さて、あなたはどうしますか?
初心者や未経験の8割以上は、パニックですよね。
そこで、Dockerを使うことで、開発環境を分けられます。
このように、個人開発では気にする必要がなかったことでも、どこかの組織に入ると気にする必要が出てくるものがあります。
Qiitaの個人開発の記事を見ると、Dockerを使っている人を見かけることがありますが、ほとんどの初心者は使っていません
他人と同じ開発環境にできる
これも個人開発ではあまりに気にする必要がないことです。
まず前提として、チームで開発する場合は、開発環境を同じにする必要があります。
それはそうですよね、AさんはRubyのバーションが3.1.1だけど、Bさんは2.6.9を使っていますだと、一緒に開発できないですよね。
では、どのようにその開発環境を同じにしますか?
わざわざ集まって、「これのバージョンはこれで...」のように話し合うのは面倒ですよね。
そこで、Dockerの機能を使うと、全員同じ環境に設定できます。
上記でデータやプログラムを分けられると書きましたが、その分けたものを他の開発者に配ることができます。
それによって、チーム全員が同じ開発環境に設定でき、また、関わるプロジェクトによって、開発環境を変えることで、スムーズに開発できます。
環境を汚さない
開発マシンにミドルウェアを入れていくと、把握していない依存ライブラリがインストールされます。
そのときはOKかもしれませんが、後々、依存ライブラリが原因で、新しいものをインストールできなくなる可能性があります。
そこでDockerを使うと、ローカル環境を汚さずに、インストールできます。
なぜの部分に関して知りたい場合は、Dockerの仕組みについて調べてみてください。
ここでその話を書くと、本の1章分ぐらい必要ですので。
まとめ
Dockerを使うメリットは、以下の通りです。
- データやプログラムを分けられる
- 他人と同じ開発環境にできる
- 環境を汚さない
もし「こんなメリットもある!」「逆にこんなデメリットも存在するよ」「ここ間違ってるよ」などがあれば、コメントで教えてください。