窓際BLOG

プログラミングの学習メモや書籍の感想等を公開していきます。

Dockerのトレンド状況と学ぶメリットとハードルについて

先日、下記の勉強会に参加してDockerの基礎的な部分は知ることでき、せっかくなのでちゃんとDockerを勉強しようと思い、ただけんさん(ただけん@electron職人になりたい (@tadaken3) | Twitter)に紹介頂いた下記書籍を購入して勉強しましたφ(..)

Dockerの基礎や使い方については、色々な記事でまとめられているので、ここではDockerの状況、Dockerを学ぶメリット及びつまづきそうな部分を整理してみようかと思います(._.)!

employment.en-japan.com

目次

Dockerってそんなに使われているの?

Dockerってよく聞くけど、本当に現場で使われているのか気になったので、色々と調べてみましたφ(..)

まずは、GoogleトレンドでDockerと良く比較されるその他の仮想環境ツールを比較してみました。 下記グラフの青がDockerです。Googleトレンドを見てみると最近では、もう他の仮想環境ツールよりも注目されはじめているようですね!

f:id:madogiwa0124:20180128220514p:plain ※赤:VirtualBox、黄色:Vmwareです。

trends.google.co.jp

Qiitaの投稿数もDockerが圧倒的ですね!!※2018/01/28現在

キーワード 投稿数
Docker 10237
Vmware 1828
Vagrant 6723
VirtualBox 5108

Dockerは、もう企業でも大分使われてますね!!

tracpath.com

結果だけ見ると、大分エンジニアとして働く上での必須スキルになりつつあるのかなぁ、と感じました(゜_゜)

Dockerを学ぶとなにが良いか?

Dockerを少し学んでみましたが、具体的なメリットとしては下記のような感じかなと思いました!

  • 他人が作った環境を再現出来るので、環境構築で躓く可能性が下がる。
  • 何か起きてもすぐに環境の破棄・再構築が出来るので、間違えても安心。

環境構築で躓くと辛いですし、なにかホスト側で環境構築してコマンドを間違えてしまったりするとリカバリが大変です。。。
Dockerを使えば他の人が作ったDockerImageを元に環境を再現でき、破棄と再構築もコマンド一つで出来るので、大分楽だと思いました!

Dockerに手を出しても理解出来るか?

本当に初心者だとDockerの学習は結構ハードルが高いと思いました。。。 Dockerを学ぶ時に障害となりそうなことを考えてみました。

  • 基本的には、CUI操作なので、GUIに慣れている人には少しつらい
  • 基本的なコンテナ内の操作はLinuxなのでLinuxの知識が0だとつらい
  • 立てることが出来るのと、実際に操作出来るのは違うのでミドルウェアフレームワークの知識は必要

Dockerで構築するにしても、インフラ周りの基礎知識やミドルウェア、フレームといった機能を学ばなくて良いというわけでは無いですね。。。

自分でWebサービスをつくってみて、構成の概要等がつかめてからDockerを勉強してみると理解しやすいのでは無いかと思いました!

ちなみにプログラミングを始めたばかりの人は、下手に自分で環境を立てずにCloud9等のオンライン実行環境がオススメです!!

aws.amazon.com

paiza.io

おわりに

Dockerはトレンドの技術になっていて、エンジニアとして働けるようになったら、最新の技術を試す環境を簡単に構築出来たり、環境構築に掛かる時間を短縮出来たりとメリットが多そうなので、インフラ周りは苦手意識があるのですが、きちんと理解してスキルとして使えるようになりたいですね・・・!!

冒頭で紹介した本は、プログラマのためのという記載もあるように、インフラやLinuxの基礎的な部分の説明からDockerの説明に入るので、プログラミングを学習してWebサービスを作ってみて、構成の概要等がつかめてきた人がDockerを学ぶ入門書にちょうど良いかなと思いました!:D

皆様の良ければ、読んでみてくださいφ(..)