Docker ワークショップ概要

This 45-minute workshop contains step-by-step instructions on how to get started with Docker. This workshop shows you how to:

  • イメージをビルドしてコンテナーとして実行します。
  • Docker Hub を使ってイメージを共有します。
  • 複数コンテナーによりデータベースを利用する Docker アプリケーションをデプロイします。
  • Docker Compose を使ってアプリケーションを実行します。

メモ

For a quick introduction to Docker and the benefits of containerizing your applications, see Getting started.

コンテナーとは何か

簡単に言うと、コンテナーとはマシン上の単なる 1 つのプロセスであって、ホスト上の他のプロセスとは分離された、サンドボックス化したプロセスです。 この分離状態は カーネルの名前空間と cgroups によって実現されています。 それは Linux において長らく実現されてきている機能です。 Docker はそういった機能を活用し利用しやすくして動作しています。 コンテナーについてまとめると、以下となります。

  • イメージが実行されたインスタンスのことです。 DockerAPI や CLI を使って、コンテナーの生成、起動、停止、移動、削除を行うことができます。
  • ローカルマシン、仮想マシン、デプロイしたクラウドの各環境上において実行することができます。
  • 移植性が高いものです(どのような OS 上でも実行できます)。
  • コンテナーは別のコンテナーからは独立していて、独自のソフトウェア、実行ファイル、設定により動作します。

chrootコマンドについてよくわかっている方は、コンテナーがchrootの拡張版として動作するものであると考えてください。 ファイルシステムは単純にイメージから利用されます。 しかしコンテナーでは chroot を利用するだけでは実現できない、追加の分離処理を行います。

イメージとは何か

実行中のコンテナーは独立したファイルシステムを用います。 そのファイルシステムは イメージ によって提供されます。 イメージにはコンテナーのファイルシステムが含まれるため、アプリケーションの実行に必要となるものをすべて含んでいなければなりません。 それは依存パッケージであり設定であり、スクリプトやバイナリです。 イメージにはそれ以外のコンテナー設定として、環境変数、デフォルト実行のコマンド、メタデータなども含みます。

次ステップ

本節ではコンテナーとイメージについて学びました。

次は単純なアプリケーションをコンテナー化して、その考え方について学びましょう。