Dockerって結局なんなん?
なんか今当たり前の技術だと聞いて、ひととおり勉強して開発環境に取り入れてみたけどイマイチありがたみを感じなかったので、今回は
・dockerを使う利点
・dockerがないとどう不便なのか?
という軸で素人なりに考えてみました。
dockerの使い方とか詳しい説明とかは他に優秀な記事がゴロゴロ転がってるので割愛します。
メリット
dockerを使う主なメリットとして
・起動が早い
・環境構築をファイル化できる
・環境差分が生まれない
あたりがあげられる。
○起動が早い
よくこう言う図で説明される。
コンテナ型技術というもので
従来のホスト型のサーバーよりも軽量で動作が早いそうだ。
ただ自分はあまりその利点を感じなかった。
おそらく個人での開発は規模が小さすぎて変化がわかりづらいのだろう。(Vagrantも使用したことあるがそんな変わらない気が、、、)
複数チームで規模の大きな開発を行う時に効率が上がるのだろう。
ちなみにコンテナ技術はDocker以前にもあったらしい。
○環境をファイル化できる
通常開発を行う時には使用言語のインストールやデータベースサーバの立ち上げなど、毎回CLIでぽちぽちコマンドを打って環境を整える必要がある。
Dockerを使う場合DockerFileに必要なツールとコマンドを書いてしまえば、コマンド一発で一気に環境が出来上がる。
上の図だと10回くらいコマンド打ってようやく出来上がる環境が
一発で出来る。効率がいい。
○環境差分が生まれない
個人的にこれが一番の利点かと思うが、チームで開発を行う時に片方がMacを使っていて、もう片方がwindowsを使っていたりすると、環境の差分がでてしまい、どちらかのPCがエラーなどで遅れて開発進まなくなってしまって、大幅に作業ロスが出てしまうことが昔はよくあり、その問題を解決できることが最大の利点ではないかと、、
ここでもう一つの考察に映る
Dockerがないとどういう問題が起きるのか?
dockerがない時代のシステム開発を想像してみる。
〜続く〜