Dockerの概要
Docker(ドッカ―)はGo言語で書かれたソフトウェアコンテナを用いたアプリケーションのデプロイメントを自動化する仮想化オープンソースソフトウェアです。 ラップトップ、データセンターのサーバ、クラウドなど様々な環境に、分散アプリケーションを構築、配布、実行することができます。DockerはPaaS ベンダーであるドイツのdotCloud社(後にDocker社に名称変更)からオープンソースソフトウェアとして2013年3月に公開されました。Docker自体はプラットフォームとも呼ばれ、主要部分であるアプリケーションはDocker エンジンと呼ばれています。
Dockerの主な特徴
コンテナ型仮想化のDockerと、その他のハイパーバイザ型仮想化等(KVMやVMWare ESXi)の違いとしては下記のような点があげられます。
- DockerはホストOSとKernelやリソースを共有する
- 環境ごとのOSインストールが不要でイメージが軽量
- イメージの起動が高速
Dockerのユースケース
以下の導入事例があります。
- ADP : Docker Enterprise Editionを採用し、セキュリティとスケールを実現
- PayPal :Docker使用して既存のアプリケーションをコンテナ化し、コスト削減と、セキュリティを強化
- Indiana University :Dockerにより115,000人の学生にアプリケーションを提供
- Netflix :Dockerのコンテナ技術を使用し1000を超えるサービスや機能を安全に高速に提供
参考) https://www.docker.com/customers
Dockerの構成要素
Dockerは以下のような構成になっています。
https://docs.docker.com/get-started/overview/#docker-architecture より引用
- Docker エンジン
Docker エンジンは、イメージの作成や、Docker コンテナの実行を行うアプリケーションの構築を行うためのクライアントサーバアプリケーションです。デーモンプロセス Docker デーモン、Docker デーモンと通信を行うREST API、クライアントアプリケーションのDocker クライアント(CLI)などで構成されます。
https://docs.docker.com/get-started/overview/#docker-architectureより引用
- Docker デーモン
Docker デーモン(dockerd)は、Docker API リクエストを待ち受け、イメージ、コンテナ、ネットワーク、ボリューム などの Dockerオブジェクトを管理します。 - Docker クライアント Docker クライアントCLI(dockerコマンド)は、ユーザがDocker を "docker run" のように対話形式で操作する為のコマンドツールです。
- Docker レジストリー
Dockerレジストリーは、Docker が扱うイメージ、コンテナ、ネットワーク、ボリューム、プラグイン、等のDockerオブジェクトを格納します。 - Docker オブジェクト
ockerは、イメージ、コンテナ、ネットワーク、ボリューム、プラグイン、等をオブジェクトとして扱います。 - イメージ
イメージは、Docker コンテナを作成するための手順が記載された読み取り専用のテンプレートです。 - コンテナ
コンテナはイメージにより作成された実行可能なインスタンスです。
関連するアプリケーションには、以下のようなものがあります。
- Kubernetes
Dockerをはじめとするコンテナ化されたアプリケーションの展開、スケーリング、管理を行うオープンソースのプラットフォームです。Docker Desktopにも同梱されています。 - Docker Compose
複数のコンテナを使うアプリケーションをYAMLファイルに定義し、実行することが出来ます。 - Docker Machine
クラウド等へ自動的にコンテナ実行環境をプロビジョニングします。 - Docker Hub
イメージの管理と構築のためのホステッド・レジストリ・サービスです。
Dockerの動作環境
DockerはLinux、macOS、Windows 10で動作します。
- Docker Desktop for Mac
Mac 上で全ての Docker ツールを実行するために、OS X サンドボックス・セキュリティ・モデルを使うネイティブなアプリケーションです。 - Docker Desktop for Windows
Windows コンピュータ上で全ての Docker ツールを実行するためのネイティブ Windows アプリケーションです。 - Docker for Linux
コンピュータにインストール済みの Linux ディストリビューション上に Docker をインストールします。
デスクトップ
Platform | x86_64 / amd64 |
---|---|
Docker Desktop for Mac (macOS) | 〇 |
Docker Desktop for Windows | 〇 |
サーバ
以下のディストリビューションおよびアーキテクチャ向けに.deb、.rpmパッケージが用意されています。
Platform | x86_64 / amd64 | ARM | ARM64 / AARCH64 |
---|---|---|---|
CentOS | 〇 |
〇 | |
Debian | 〇 | 〇 | 〇 |
Fedora | 〇 | 〇 |
|
Raspbian | 〇 |
〇 | |
Ubuntu | 〇 | 〇 | 〇 |
Dockerに類似のソフトウェア
Dockerに類似するソフトウェアには、ハイパーバイザ型のVMWareやKVM、ESXi、Hyper-V。コンテナ型のPodman、Skoepo、buildah。コンテナ管理ツールとしてのKubernetes、Google Kubernetes Engine、Red Hat OpenShift Container Platformなどがあります。
Dockerのライセンス
Dockerのライセンスは、 「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、 誰でも自由かつ無償で利用・改変・再配布できるようになっています。
Dockerのダウンロード
Dockerは、以下のサイトからダウンロードできます。
https://www.docker.com/get-docker/
Dockerのサポート
NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。
・オープンソース年間サポートサービス