連載
» 2021年08月23日 05時00分 公開

5分で分かるDockerDockerをざっくり解説

コンテナのアプリケーション実行環境を管理するオープンソースソフトウェア、Dockerをおよそ5分でざっくり解説します。

[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

Dockerとは?

 Dockerとは、Docker社(旧dotCloud)が開発するコンテナのアプリケーション実行環境を管理するオープンソースソフトウェア(OSS)です。2013年にオープンソースのプロジェクトとして公開されました。

 コンテナは、実行環境を他のプロセスから隔離し、その中でアプリケーションを動作させる技術です。コンテナが利用するリソースは他のプロセスやコンテナから隔離されています。そのため、コンテナに構築されたアプリは独立したコンピュータでアプリが動作しているように見えます。

 コンテナを用いることで、異なるサーバでも、同じ構成の環境を簡単に構築することができます。PC全体を仮想化する仮想マシンとよく比べられますが、仮想マシンよりも軽量で高速に動作し、実行に必要なリソースも少なくて済みます。仮想マシンとコンテナの違いについては、こちらの記事(第1回 Dockerとは)で詳しく解説しています。

 Dockerは、コンテナに含まれるアプリケーションをパッケージ化して実行する機能、コンテナを管理するためのツールとプラットフォームを備えています。

Dockerのメリット

Dockerには次の3つのメリットがあります。

開発ライフサイクルの改善に強い

 Dockerを使用すると、開発者はコンテナを利用して標準化された環境で作業できるようになります。その結果、開発ライフサイクルが改善され、CI/CD(継続的インテグレーション/継続的デリバリー)につながります。

開発環境が簡単に用意でき、かつ本番環境と共通化できる

 Dockerは「Docker Registry」「Docker Export/Import」という機能を有しています。これは、コンテナの元となるDockerイメージ(後述)を異なるホスト間で共有する機能です。例えばチームで開発をする際、開発用マシンで作成したDockerイメージを他のメンバーのマシンに簡単にコピーできます。これにより、アプリケーションの移植性や相互運用性を高めることができます。

アプリケーション実行環境を高速にデプロイできる

 コンテナは、Dockerを実行するホスト上で他のアプリケーションと同じプロセス単位で管理されます。そのためコンテナでは、ハイパーバイザー型の仮想マシンでいうところのOSのブート処理が不要です。より少ないリソースでより多くのことができるため、アプリケーションの実行環境を高速にデプロイすることが可能になります。

Dockerアーキテクチャ

 Dockerを利用する際は、Dockerイメージやコンテナなどのオブジェクトを作成します。代表的なオブジェクトの概要をDockerコンテナプロセスの内部と外部に分けて、ざっくりと解説します。

Dockerの実行環境(参考:第1回 Dockerとは

Dockerコンテナプロセスの外部

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。