Dockerってなに?なんで必要なの??

Q
Q

Dockerとは?
コンテナとか仮想化とかいわれても分からんよ。
なんで必要なのか教えて。

SunShine!
SunShine!

専門的なことはすっ飛ばして。
担当者に開発環境を提供するのに必要なんですよ。

Docker

Dockerって?

技術の説明とか、細かい設定とか、基本的な機能とか。
専門的な話は、そーゆーサイトで調べてください。
ここでは、Docker使いますって開発会社に言われて、それなに?って発注側向けの、ざっくりとした話です。まずはイメージを掴むってことで。

なるべくシンプルに説明したい

開発環境を提供する目的

プログラムが動く環境を準備して、関係者に配れるようにしておきたいの。

開発する人たちの作業が圧倒的に省力化されますよってこと。
効率よく作業できるようになる。

Docker
分からんよね。。

では、プログラミングすることを考えてみましょう。
プログラムを書くためには準備がけっこうあるんだ。
たとえば以下。

  • OS準備と各種設定
  • プログラミングアプリを準備して設定
  • プログラミング用のライブラリなどの支援ツールを準備して設定
  • テストツールを設定
  • フロントエンドとデータベースを接続

などなど。ほかにもやることはたくさん。準備作業が大変なわけ。

こういった準備作業を完了させた環境をDockerに準備しとくと、すぐに開発を始められる。
もちろん、最初の環境設定は誰かがやるんだけど。その1回で済むっしょ。

チームメンバーが増えたら、準備済みの環境を使ってすぐにスタートできる。(環境設定だけで1日以上必要)
個人ごとに設定間違えてたとかってトラブルもなくなる。(開発者あるある)

べつにプログラムじゃなくてもいーんだけどさ。
システムとかアプリとかつくるときの最初の準備は、だれか一人がやればいーんだな。
一元化ってやつね。
省力化ってのもあるけど、統一ってのが大きい。

開発してるのはこれだけじゃないから

開発担当者は、べつに今回のシステムだけ担当してるわけじゃない。アプリも、ね。
会社でも個人でも、お仕事なんだから。
ひとつのシステムでおしまいじゃない。

たきな

いくつかのシステムを担当してるし、この先も担当することになる。

チームメンバーを流動的に調整したい。
次の仕事に入ったとしても、前の仕事のメンテナンスしてほしい。
そんな感じ。

複数人で開発してる

チームには何人も担当者がいるでしょ。
人が増えると、それだけ管理が大変になるんだよ。

それぞれの人に意思があって、独立した人格だからさ。

会議中

この環境でお願いしますって言ったとしても、結果はズレるんだ。

  • セットアップにかかる時間がまちまち。
  • セットアップした設定がまちまち。ときどき間違ってる。
  • セットアップがうまくできないこともある。

システム開発あるあるなんだよね。
環境をあらかじめDockerで準備しておいて、これ使ってねって渡せば、それで済むよねって発想。

複数環境ある

だいたいの場合、開発環境テスト環境本番環境とかって、必要な環境が複数になるでしょう。
それぞれでプログラミング言語のあれこれやデータベース接続やって準備してたら大変でしょ?
だれかがDockerで環境作ったら、それぞれに環境をコピればいいんだよ。

鏡がない

あと、Aシステムを作り終わったらBシステムの担当になりました。
リリース済みのAシステムなんだけど、こんな問題が発生してて、ちょっと見てもらっていいですか?ってことがけっこーあるのよ。
Dockerがなかったら、環境をいちいち設定しなおさないといけないでしょう。
それぞれの環境が監理されてれば、ポチポチっと切替えれば済むぜって話。

ロールバックできる

環境をぶっ壊すような誤操作とかしちゃっても。テスト結果になっちゃっても。
Dockerに最初の環境が残ってるから、すぐに復元できる。

システム全体のパラメーターをいじるような操作もあるでしょ。
開発とかテストとかでは、けっこーいろんなことをやるんだよ。
ぶっ壊されないかな~?ってやってみたら、実際壊れちゃったw
とか。

いちから戻すのなんてたまったもんじゃない。

その他にもたくさん機能はあるが

まずは上記で。

シュレーディンガーの猫

その他にもできることはあるし、活用の場面はあるんだけど。
だいたいこれで合ってるだろ。

もっと詳しいことは、詳しい人が書いたコンテンツを見たほうがいいよ。

ここではこんな理解
  • Dockerってなに?
    → システム環境を提供するツール
  • なんのために必要なの?
    → 開発作業の効率化のため
なるべくシンプルに説明したい

ご意見やご感想などお聞かせください! コメント機能です。

タイトルとURLをコピーしました