Docker情報
Dockerとは
Docker(ドッカ―)はGo言語で書かれたソフトウェアコンテナを用いたアプリケーションのデプロイメントを自動化する仮想化オープンソースソフトウェアです。 ラップトップ、データセンターのサーバ、クラウドなど様々な環境に、分散アプリケーションを構築、配布、実行することができます。DockerはPaaS ベンダーであるドイツのdotCloud社(後にDocker社に名称変更)からオープンソースソフトウェアとして2013年3月に公開されました。Docker自体はプラットフォームとも呼ばれ、主要部分であるアプリケーションはDocker エンジンと呼ばれています。
主な特徴
コンテナ型仮想化のDockerと、その他のハイパーバイザ型仮想化等(KVMやVMWare ESXi)の違いとしては下記のような点があげられます。
- DockerはホストOSとKernelやリソースを共有する
- 環境ごとのOSインストールが不要でイメージが軽量
- イメージの起動が高速
同様の機能を提供する商用製品
Dockerに類似するソフトウェアには、ハイパーバイザ型のVMWareやKVM、ESXi、Hyper-V。コンテナ型のPodman、Skoepo、buildah。コンテナ管理ツールとしてのKubernetes、Google Kubernetes Engine、Red Hat OpenShift Container Platformなどがあります。
ユースケース
以下の導入事例があります。
- ADP : Docker Enterprise Editionを採用し、セキュリティとスケールを実現
- PayPal :Docker使用して既存のアプリケーションをコンテナ化し、コスト削減と、セキュリティを強化
- Indiana University :Dockerにより115,000人の学生にアプリケーションを提供
- Netflix :Dockerのコンテナ技術を使用し1000を超えるサービスや機能を安全に高速に提供
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 オブジェクト
Dockerは、イメージ、コンテナ、ネットワーク、ボリューム、プラグイン、等をオブジェクトとして扱います。
イメージ
イメージは、Docker コンテナを作成するための手順が記載された読み取り専用のテンプレートです。
コンテナ
コンテナはイメージにより作成された実行可能なインスタンスです。
関連するアプリケーションには、以下のようなものがあります。
Kubernetes
Dockerをはじめとするコンテナ化されたアプリケーションの展開、スケーリング、管理を行うオープンソースのプラットフォームです。Docker Desktopにも同梱されています。
Docker Compose
複数のコンテナを使うアプリケーションをYAMLファイルに定義し、実行することが出来ます。
Docker Machine
クラウド等へ自動的にコンテナ実行環境をプロビジョニングします。
Docker Hub
イメージの管理と構築のためのホステッド・レジストリ・サービスです。
動作環境
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 |
---|---|
〇 |
|
〇 |
サーバ
以下のディストリビューションおよびアーキテクチャ向けに.deb、.rpmパッケージが用意されています。
Dockerのライセンス
Dockerのライセンスは、 「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、 誰でも自由かつ無償で利用・改変・再配布できるようになっています。
製品ダウンロード
Dockerは、以下のサイトからダウンロードできます。
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
Rancher
ランチャー。Rancher Labsが主導となって開発しているKaaS(Kubernetes-as-a-Service)を実現するプロダクトで、Multi-Cluster Kubernetes Management を行うためのOSSです。
-
サポート対象
Kubernetes
クーバネティス。Dockerをはじめとするコンテナ化されたアプリケーションの展開、スケーリング、管理を行うオープンソースのプラットフォームです。
-
cri-o
cri-oはKubernetes Incubator Projectとして開発された、Kubernetes実装のコンテナランタイムです。
あわせてご確認ください。