Dockerとは
この記事ではDocker技術によってDockerは何か?Dockerのメリットや特徴とDockerのイメージ、コンテナについてまとめました。
Dockerとは?
Dockerはインフラ関係やDevOps界隈で注目されている技術の一つで、Docker社が開発している、軽量で高速に動作するコンテナ型の仮想環境の作成、実行するためのプラットフォームです。
Dockerを使うことで、1台のサーバー上で様々なアプリケーションを手軽に仮想化・実行できるようになります。
Dockerの特徴
Dockerは、Linuxのコンテナ技術を使ったもので、よく仮想マシンと比較されます。
従来の仮想化では仮想マシンごとに1つのゲストOSをインストールし、あたかも1台の独立したサーバーのように利用していました。一方でDockerではホストOSのカーネルを共有して利用することで、従来の仮想化と違いゲストOSを必要としません。その分だけDockerは軽快に動作するのが特徴です。
また、Dockerはミドルウェアのインストールや各種環境設定をコード化して管理します。
これはInfrastracture as Code(IaC)と呼ばれていて、ソフトウェア開発で実施されてきた構成管理や自動化などを、サーバーの各種設定やミドルウェアのインストールなどにも適用したものです。
Dockerでできること。
• 1台のサーバー上に複数のアプリケーション実行環境(Dockerコンテナ)を作成・利用できる。
• アプリケーション実行環境(Dockerコンテナ)の他サーバーなどへの移転、他ユーザーとの共有。
• Dockerコンテナでアプリケーションの開発環境を作成し、インターネット上で他エンジニアと簡単に共有できる
Docker利用のメリット
- 手軽かつスピーディに―アプリケーションの実行環境を確保できる
- 処理速度が速い(CPUやメモリーの使用量を節約できる)
- アプリケーション実行環境の移転が簡単
Dockerコンテナ
Dockerによって構築されるアプリケーションの実行環境(仮想環境)のことです。Dockerコンテナは独立した環境として存在し、他のDockerコンテナやホストとなる環境に影響することはありません。Dockerでは専用コマンドでDockerコンテナを作成し、目的のアプリケーションを動作させます。
Dockerイメージ
Dockerコンテナの動作環境についてまとめたテンプレートファイルです。Dockerイメージには、Dockerコンテナに使われるアプリケーションから、アプリケーション実行用のコマンド、メタデータまで含まれます。
Dockerコンテナを作成するためには、Dockerイメージが必要です。的なDockerイメージを専用コマンドで実行することで、Dockerコンテナが起動されアプリケーションの実行環境として使える状態になります。
Dockerパイル
Dockerfileは、Dockerイメージを作るための設計図にあたるテキストファイルです。Dockerfileには、Dockerコンテナの設計内容がコマンド形式でまとめられています。
Dockerfileを専用コマンドにて組み立てる(buildする)ことで、Dockerイメージが作成されるのです。そうしてDockerイメージを実行する(runする)ことによって、Dockerコンテナが作成されます。
Dockerレジストリ
Dockerレジストリとは、Dockerイメージを保存・共有する場所のことです。ユーザーはDockerレジストリ上にDockerイメージを保存したり、他ユーザーが作成したDockerイメージを取得して使ったりできます。
Docker Hub
またDocker公式のDockerレジストリとして、様々なアプリケーションの公式Dockerイメージが公開されています。ユーザーはそれら公式イメージを利用することで、Docker上で簡単にアプリケーションの実行環境を構築できるのです。
まとめ
Dockerとは仮想化技術より軽快に動作する、コンテナ型仮想環境用の技術です。昨今ではさまざまな開発環境でDockerが利用されています。
Discussion