概要

ようこそ! あなたが Docker を学ぼうとしているので、私たちはとてもうれしいです。

このガイドでは順を追った手順に従い、Docker の始め方を学びます。このガイドで学び、できるようになるのは以下の項目です。

  • イメージをコンテナとして構築と実行

  • Docker Hub を使ったイメージ共有

  • データベースを持つ複数のコンテナを使う Docker アプリケーションのデプロイ

  • Docker Compose を使ってアプリケーションを実行

ガイドに進む前に、コンテナとイメージについて学ぶべきです。

コンテナとは何?

簡単に言えば、 コンテナ(container) とはマシン上でサンドボックス化したプロセスであり、ホストマシン上にある他すべてのプロセスから 隔離(isolate) されています。この隔離とは カーネルの名前空間と cgroup の活用であり、長らく Linux に存在する機能です。Docker はこれらの 能力(capability) を、分かりやすく簡単に使えます。コンテナについてまとめますと、次のようになります:

  • イメージの実行可能な 実体(インスタンス)(instance) 。Docker API や CLI を使い、コンテナの作成、開始、停止、移動、削除ができます。

  • ローカルマシン上や仮想マシン上で実行できるのに加え、クラウドにもデプロイできます。

  • 可搬性(ポータビリティ)(portability) があります(多くの OS で実行できます)。

  • コンテナはお互いに隔離され、実行にはそれぞれが自身のソフトウェア、バイナリ、設定を使います。

コンテナ イメージとは何でしょうか?

コンテナを実行したら、コンテナは隔離されたファイルシステムを使います。この特別なファイルシステムは コンテナ イメージ(container image) によって提供されます。イメージにはコンテナのファイルシステムが含まれており、アプリケーションの実行に必要な全てを含む必要があります。例えば、全ての(アプリケーションを実行するために必要なパッケージ等の)依存関係、設定ファイル、スクリプト、バイナリ等です。また、このイメージには環境変数、デフォルトで実行するコマンド、メタデータのような他の設定も含みます。

イメージに関して、このガイドの後のレイヤ化、ベストプラクティス等のトピックで深掘りします。

注釈

chroot を熟知していれば、コンテナとは chroot の拡張バージョンと考えてみましょう。ファイルシステムとは、単にイメージから由来します。ですが、コンテナの場合は、単純に chroot の使用ではできない付加的な隔離を追加します。

次のステップ

このセクションでは、コンテナとイメージについて学びました。

次のセクションでは、アプリケーションをコンテナ化しましょう。

参考

Orientation and setup

https://docs.docker.com/get-started/