【Docker】Dockerを使うことになった経緯

みなさん、こんにちは!
こうへい(@kohei72901660)です。
※随時更新していきます。
今回は、仕事でDockerをなぜ使うことになったのかについて書きます。
Dockerを使うことになった経緯
そもそもなんでdockerを使うことになったのか。実際に開発したシステムを動かすテスト環境を用意することになりました。
ただ、用意されたテストサーバーのリソース(メモリ、ディスク)が限られていたのです。
もちろん、そんなにリソースを使わないシステムならいいのですが、膨大なデータを扱うシステムでした。
そして、もちろんテスト人数も1人とは限りません。各々任された課題を対策し、テストする必要があります。そうすると同時にシステムが動くことになり、さらにリソースを使うことになります。
ここで使用することになったのがDockerでした。簡単に言うとLinuxのコンテナ技術を使ったもので、一般に言う仮想化技術とは違い、オーバーヘッドが限りなく少ないです。
仮想化技術はOS上にVM(virtual machine)が動いて、その上にOSが乗っかるイメージかと思います。OSを乗っけるのでOSのプロセスが動きます。それがVM上に立ち上げたサーバー分できるのでとてもオーバーヘッドが大きくなります。
一方、dockerはサーバーのOS自体を各コンテナ(環境)ごとに共有するので、OSで動く必要のあるプロセスも全体で1つになります。
それに、ディスクについても各コンテナごとに分けることができます。VMやOSを入れる必要がないので全体で使うディスクも少なくなります。
結果的に使うリソースを限りなく少なくすることができ、テストする人分の開発環境を用意することができるということです。
さらに環境ごとに独立してるので、1人がテストしててディスクフルになったり、バグが混在してるバージョンをテストしてても、他人には影響しません!
さらにさらに、一回開発環境について記載するスクリプトDockerfileを書いてしまえばdockerコマンドを打つだけで全く同じ環境が作れちゃう!
便利なことしかない!ですね。
ですが、デメリットもしっかりあります。
OSを共有するので、セキュリティ的に問題があります。ただ開発環境ですしそんなに問題にはならないかなと個人的には思ったりします(^^)
以上がdockerを使うことになった経緯です。今は無事にdockerを使ってテストやってます(^^)
Dockerってなに?詳しく知りたい!
もっとdockerについて知りたいです。OSの仮想化技術って言われることがあるみたいですが、普通の仮想化技術とは違うのでしょうか。そのことについては別記事にて詳しく書きたいと思います。
人気記事:Docker学習におすすめの本5選【初心者向け入門書~実践向けまで】
