トップ OSS紹介 Docker

Docker

サポート対象

NRIのOpenStandiaが提供するDocker最新情報

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を超えるサービスや機能を安全に高速に提供

参考)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 オブジェクト

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 をインストールします。

デスクトップ

サーバ

以下のディストリビューションおよびアーキテクチャ向けに.deb、.rpmパッケージが用意されています。

Platform

x86_64 / amd64

ARM

ARM64 / AARCH64

Dockerのライセンス

Dockerのライセンスは、 「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、 誰でも自由かつ無償で利用・改変・再配布できるようになっています。

製品ダウンロード

Dockerは、以下のサイトからダウンロードできます。

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • Rancher

    Rancher

    ランチャー。Rancher Labsが主導となって開発しているKaaS(Kubernetes-as-a-Service)を実現するプロダクトで、Multi-Cluster Kubernetes Management を行うためのOSSです。

  • Kubernetes
    サポート対象

    Kubernetes

    クーバネティス。Dockerをはじめとするコンテナ化されたアプリケーションの展開、スケーリング、管理を行うオープンソースのプラットフォームです。

  • cri-o

    cri-o

    cri-oはKubernetes Incubator Projectとして開発された、Kubernetes実装のコンテナランタイムです。

オープンソースに関する様々な課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。