Docker

この記事はDockerについて解説した記事です。会話形式のやさしい文章で「Docker」の用語のイメージを紹介した後に、採用に役立つDockerの知識を解説しています。

1分で分かる!Dockerの基礎知識

ねぇねぇ、ジャバード先生。ちょっと質問してもいい?

なんだい?ことりん君。

このまえさ、Kubernetesについて教えてもらったんだけど、そのときにチラッとDockerってやつの話になったじゃん?

あぁ、Kubernetesでコンテナ(Docker)を管理できるよってお話をしたよね。

そうそう!でさ、やっぱりDockerってやつがいまいちピンとこなくてさ。だからDockerについて詳しく教えてほしいんだよね。

なるほど。じゃあ今日はDockerについて、分かりやすく説明するね。

お願いします!

Dockerを一言でいうと「コンテナ型の仮想化を実現するためのプラットフォーム」だよ。

ふむふむ。やっぱり全然わからん!!

1つずつ消化していこう!まずは「仮想化」から説明するね。仮想化は「物理的なリソースを論理的に分割・統合するための技術」のことなんだ。たとえば、サーバーの仮想化といえば、物理的には1台のサーバーしかない状態でも、その1台のサーバーの中に複数のサーバーを仮想的に構築することを指すんだよ。

なるほど。ホントは1台しかないけど、あたかも複数のサーバーが存在しているかのように振る舞うってことだね。

そういうイメージだね!仮想化によって、リソースを無駄なく、効率的に利用できるんだ。ただ、一言で仮想化といっても「ホスト」や「ハイパーバイザー」など色んな方式があるんだ。それらの方式と並んで「コンテナ」と呼ばれるものがあるんだよ。

あぁ、仮想化にもいろんな実現方法があるのか。でも、なんでDockerみたいなコンテナ型の仮想化が注目されているの?

いい質問だね!仮想化の歴史はホスト型と呼ばれるものからスタートしたんだ。そのホスト型の仮想化は、1つのOS上に複数の仮想的なOSを構築するイメージなんだ。構築は簡単なんだけど、リソースの無駄も多いんだ。

OSの上にいくつも仮想OSを動かすと、確かに無駄が多そうだね…。じゃあコンテナ型は?

コンテナ型は、1つのOS上に「コンテナ」と呼ばれるアプリケーションの実行領域を構築するんだ。このコンテナはそれぞれ独立しているので、それぞれのアプリケーションにあった環境を構築することができるんだよ。

あぁ、コンテナ型だとOSは仮想化の対象外なんだね。確かにホスト型よりもリソースを有効活用できそうだね!

そうそう!その他にも環境を簡単に構築できるようになったり、リリースまでの時間を短縮するといったメリットも期待できるんだよ。そういったメリットはDevOpsマイクロサービスの実現にも大きな効力を発揮するんだよ。

なるほど。じゃあそのコンテナ化を実現するためのソフトウェアがDockerってことだね?

そういうこと!Dockerを使えば、これまで説明してきたコンテナ型の仮想化を実現できるってことだね!ちなみにDocker以外にもコンテナ型の仮想化を実現するソフトウェアがあることは覚えておこう!

よーくわかったよ!ジャバード先生ありがとう!

はーい!またいつでも聞いてね!

Dockerとは?採用に役立つ基礎知識

Dockerとは?

Dockerとは、コンテナ型の仮想化を実現するためのソフトウェアです。仮想化の実現方法は様々ありますが、コンテナ型仮想化は、1つの物理的なOS上に独立した仮想的なアプリケーション実行領域(コンテナ)を複数構築します。

Doclerを用いることで、動作させたいアプリケーションに必要なライブラリやソフトウェアを1つのコンテナという形でまとめることができるため、アプリケーションのデプロイやリリースが容易となります。また、サーバーのリソースという観点においても、効率的に活用することが可能です。

なお、Docker社は、製品のラインナップとして個人や中小規模向けのDecker Desktop、Dockerのイメージをクラウド上で共有できるDocker Hub、エンタープライズ向けのDocker Enterpriseなどを持っていましたが、2019年にDocker EnterpriseをMirantis社に売却しています。

Dockerを使うエンジニア

現在、比較的モダンな開発では、必ずといって良いほどDockerを利用します。具体的には、開発を担当するフロントエンドエンジニアサーバーサイド(バックエンド)エンジニアネイティブアプリエンジニアなどといった職種のエンジニアがDockerを使用します。また、インフラ(サーバー)エンジニアなどといったインフラエンジニアも、Dockerの設定や構築などを担当することがあります。

Dockerを使うエンジニアの特徴と在籍業界

Dockerはすでに仮想化ソフトウェアとしてスタンダードなものとなっています。そのため、Dockerを利用するエンジニアに、特筆すべき特徴はありません。

また、業界としても様々な方面で導入が進んでいますが、その中でも開発やリリースの頻度が高いWeb業界やスマートフォンアプリ業界などは、Dockerに明るいエンジニアが多く属しています。

採用する時に知っておくとよいこと

コンテナ型仮想技術の現在

IT専門調査会社 IDC Japan 株式会社は、2021年 国内コンテナ/Kubernetesに関するユーザー導入調査結果を発表しています。この調査のポイントとしては以下の通りです。

  • 本番環境で使用している企業は16.9% (2020年より2.7pt上昇)
  • 導入構築/テスト/検証段階にある企業は23.3% (2020年より4.7pt上昇)
  • 上記を合わせた40.2%の企業がコンテナの導入を推進

この結果からも、今後さらにコンテナ型仮想化技術のシェアは拡大していくと予想できます。そのため、Dockerの需要も高まっていくはずです。

ただし、Docker社は2021年8月にデスクトップ版であるDocker Desktopの有料化を発表しました。これまで同製品は無料で利用できていましたが、従業員250名以上あるいは売上が11億円以上ある企業は使用料を支払うこととなります。

オープンソースソフトウェア界隈では、たまに発生することではありますが、別の優れたコンテナ型のプラットフォームが出現すれば、急激にシェアが変化する可能性もあります。

求人のポイント

求人を作成する時は、下記の内容を求人に入れるとよいです。

1システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2開発環境
3現在のエンジニア組織の体制
4現行システムの課題と募集の背景
5求められる業務と期待値
6エンジニアとしてのスキルアップ支援制度の有無と詳細
7エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8選考フロー
9待遇
10キャリアパス

Dockerの豆知識

Docker関連の資格

Docker関連の資格としては、以下のようなものがあります。

Docker関連のイベント 

Docker関連のイベントとしては、以下のようなものがあります。

関連記事

  1. UI/UX

  2. Angular

  3. Jenkins

  4. サーバーサイドエンジニア採用で知っておくべき技術用語まとめ

  5. CAE

  6. CircleCI