牛山くんがパソコンを見ながら独り言を言っています。

……へぇ。 ……ふむふむ

牛山くん、何を見ているの?

IT関連のネットニュースですよ。どうやら、2021年9月からDockerが有料化されたようですね
そんな話をしているとキャニット先生がやってきました。

おっ、もうDocker有料化の情報を知りましたか。耳が早いですね

そもそもDockerってなんですか?

知らないで話していたのか……

たしかにまだ二人には説明していなかったしれませんね。いい機会なので、今回はDockerの解説をしましょうか
2021年9月現在、有料化に伴いDockerの話題をネット上ではよく見かけます。駆け出しエンジニアの方は、まだDockerに触れていない人も多いでしょう。いい機会なので今回の講義では、駆け出しエンジニアにもわかりやすいようにDockerを簡単に紹介します。
すぐにわかる!Docker


簡単に言うと……Dockerとはコンテナ型の仮想化プラットフォームです。ゲストOSが不要。これが最大の特徴ですね

コンテナ型も仮想化プラットフォームも……聞いたことないなぁ。なんならゲストOSから、すでによくわからん

もっと簡単に言うと、ですね……開発するときに普段使っているOSとは別のOSを使うときがあるんですよ。それがゲストOSです。たとえば、macでwindowsのOSを使うときは、windowsのOSがゲストOSにあたります

でも、Dockerを使えば、ゲストOSは必要なく開発できる……と

そういうことです。もっと詳しく知りたい方は以下の文章を読んでくださいね
Dockerはコンテナ型の仮想化プラットフォームです。VMware製品などの完全仮想化を行うハイパーバイザー型製品と比べて、ディスク使用量は少なく、インスタンス作成やインスタンス起動が速くて性能劣化がほとんどないという利点、ゲストOSが不要であるという特徴があります。
Dockerには港湾労働者という意味があり、港湾労働者に使用される仕事道具がコンテナ (Container)と呼ばれる入れ物です。このコンテナが由来であるコンテナサービスは、OS上に隔離されたアプリケーションの実行環境(コンテナ)を作成し、1台のホストマシン上で複数のホストが動いているかのような環境を実現する仮想化技術です。2013年に誕生したIT版Dockerは、仮想化を支える一つの技術としてその後急速に普及しています。
Docker:代表的な4つの特徴


では、Dockerの代表的な特徴を4つにまとめたので、紹介します
Dockerの特徴①:システム導入の高速化
Dockerを使えばOSを既に共有して利用しているので、それらの設定の手間を省けます。システム構築のための最低限のプログラムしかインストールする必要はありません。
つまり、Dockerを使えばプログラム適用から導入までの流れを効率的、かつ高速化できます。
Dockerの特徴②:同じ環境をすぐに共有できる
Dockerは各種環境設定をすべてコード化して管理します。そのコード化されたファイルを共有すれば、あとは読み込むだけで誰でも同じ環境を作れます。1度作成したコンテナはDockerイメージを作成し他のコンテナへ適用すれば、再利用も可能です。
Dockerエンジンが稼働しているマシンならDocker Hubへアクセスできるので、同じイメージをダウンロードすればどのホストサーバでも同じ環境が簡単に作れます。検証時やリソースを拡大したい時も、すぐに同じ環境設定が適用されたコンテナを準備することができます。
Dockerの特徴③:アプリを細かく開発できる
Dockerでは複数のコンテナを組み合わせてサービスを開発するのが一般的です。言い換えるとパーツを組み合わせて一つの大きなアプリケーションを開発するということで、流行りのマイクロサービスアーキテクチャを簡単に実現することができます。逆にモノリシックなアプリ開発にはDockerは向いていません。
Dockerの特徴④:リソースの消費を抑えられる
従来のハイパーバイザー型の仮想化では仮想マシン上でOSを実行していたため、リソースが必要でした。しかし、コンテナの場合はアプリケーションの実行のみです。これまでの仮想化と比較して、ディスクやメモリなどのリソースの消費が少ないこともDockerのメリットです。

なんか、いいことづくしですね
Dockerのインストール方法


Dockerを使用するためには、インストールが必要なのでインストール方法を紹介します
まずはこちらにアクセスします。上記画像と同じインストール画面が出てくるので、自分が使っているOSに合わせてDockerをインストールしましょう。
ダウンロード選択にStableとEdgeの2種類がありますが、Download Docker Community Editionからダウンロードしましょう。Mac の場合は Docker for Mac をインストールするだけです。

Mac with Intel ChipとMac with Apple Chipというのがあるよ。どっちにすれば良いの?

インテル社のCPUが搭載されているmacならMac with Intel Chipのほうで、アップル社のCPUが搭載されているmacならMac with Intel Appleのほうです。まぁ、仮に間違えても「違いますよ」と教えてくれるので、そこまで問題ないです
Windows の場合も Windows 10 以上かつ Home でなければ Docker for Windows をインストールするだけです。
最低限知っておきたいDocker用語


聞き慣れない言葉がたくさん出てくるかもしれないので、Dockerを使う際に最低限知っておいたほうが良い用語をピックアップしました
●Docker image
「Docker image」とはコンテナの土台となるもので、Dockerではダウンロードした「Docker image」をホスト上で保管しています。ホスト上に「Docker image」がない場合はレジストリからダウンロードを行います。
●Docker file
「Dockerfile」とは、Docker上で動作させるためのコンテナの構成一つ一つの情報を書き表すためのファイルです。通常は、手動でDockerイメージを構築するために実行が必要な全ての命令を指します。Dockerは Docker fileの命令を読み込み、自動的にイメージを構築します。
●Docker for Mac
「Docker for Mac」はmacOS上でDockerを使う場合、Docker Toolboxの後継としてMac向けに特化したものです。Docker for Macはインストールが簡単で軽量に設計されています。
VirtualBox 無しにDockerを扱えるようになり、Docker Composeも使えるようになります。
●Docker for Windows
「Docker for Windows」はWindows 10システム向けに特化した軽量なDockerです。クライアント・ベースのオペレーティングシステム(Windows 10)上でDockerコンテナを設定するための物でもあります。
Windows Server 2016上でもオプションを切り替えるだけでWindowsコンテナの迅速なセットアップや実行を行えます。
プログラミング初心者向けDocker解説:まとめ


というわけで、今回はDockerについて紹介しました

有料化についても知りたいです。お金がかかるようになったんですよね?

個人で使う分には、無料ですよ。一定以上の規模がある法人でDockerを使う際に料金がかかるようになっただけです。だから、我々は気にしなくても大丈夫です

なんだ。無料で使えるのか……。そういえば、途中までしかネット記事を読んでいませんでした

はやとちりだなー

でも、おかげでDockerについて知る機会になりましたね。今後もIT業界の動きにはチェックしていきましょうね