Docker入門 第2回 Dockerの基本3要素 コンテナ・イメージ・dockerfileとは?

Docker基礎

Dockerには基本となる3つの要素「コンテナ」「イメージ」「DockerFile」があります。
最初に基本要素を学ぶことで、Dockerの仕組み、コマンドの意味、サービス構築の手順が容易に理解できるようになります。初心者はまず、この基本要素を学びましょう。

このページから学べること
・Dockerを構成する基本要素の仕組み
・コンテナが作成される流れ

Dockerで抑えるべき基本3要素

Dockerの基本要素とは次の3つです
①コンテナ
②イメージ
③Dockerfile

結論から言うと、
・「DockerFile」から「イメージ」作られる。
・「イメージ」から「コンテナ」作られる。
といような流れなっています。

この流れを理解すること、それぞれの手順やDockerコマンドを理解することが最も重要です。
まず最初のこの3要素の流れを覚えることが、Dockerを使いこなすための最短ルートとなります。

コンテナはイメージから作られる

まずは復習。コンテナとは何か覚えているでしょうか?
コンテナとはホストマシン上で、隔離された領域にアプリケーション一式が入ったものです。

 

コンテナは隔離されているため、コンテナ間で影響し合うことはありません。そして、Docker Engineがある環境ならば、どんな環境でも動作します。
そして、コンテナは軽量であるため配布が容易です。ホストマシン上では、コンテナは1つのプロセスとして扱われます。

そして、コンテナで押さえておくべき重要なポイントは次のこと。

コンテナはイメージから作られる

docker container createコマンド、または
docker container runコマンドで、イメージからコンテナが作成されます。
※docker create、docker runコマンドも同義

docker container create <イメージ名>
または、
docker container run <イメージ>
・イメージからコンテナを作る。
・docker container createコマンド、または
docker container runコマンドで、イメージからコンテナを作成する。

イメージはDockerfileから作成される

続いて、イメージとは、コンテナの素になるテンプレートのことです。
コンテナはLinux上の1プロセスとして動作しますが、イメージはファイルなので、何も動作しません。

そして、イメージはレイヤー構造で、
・ベースは何か?
・どんなアプリケーションをインストールするか?
・環境変数・設定ファイルをどこに配置するか?
といった情報が含まれています。

イメージを作成、または取得する方法は2通りあります。

  1. Docker Hubから取得する
  2. Dockerfileから作成する

Docker Hubからイメージを取得する

Docker Hubとは作成済みのイメージが公開されている場所のこと、レジストリサービスです。
主要なアプリケーションのイメージはDocker Hubで公開されています。通常はDocker Hubからイメージを取得することが多いでしょう。

docker image pullコマンドで、ubuntuコンテナの取得を行う様子を見てみましょう。
DockerHubからダウンロードしている様子がわかります。

DockerFileからイメージを作成する

もう一つのイメージ作成方法は、Dockerfileからイメージを作成する方法です。

「Dockerfile」とは、イメージの元となる情報を記述したテキストファイルです。
既存のイメージをベースとして、その上にインストールするアプリケーション、環境変数、設定ファイル、コンテナ起動時に実行するコマンドなどを記述します。

 

docker image buildコマンドで、イメージを作成します。

docker image build
・イメージとは、コンテナの素になるテンプレートのこと。
・イメージは、DockerHubから取得する、またはDockerFileから作成する。
・docker image buildコマンドで、DockerFileからイメージを作成する。

コンテナ構築の流れ

これまでの話を整理すると、次のようになります。
まず、コンテナ、イメージ、Dockerfileとは、次のようなもの。

  • コンテナはアプリケーション一式が入った隔離された領域、実行プロセス
  • イメージはコンテナの元となるテンプレート
  • Dockerfileはアプリケーションの情報、環境変数や設定を記述したもの

 

そして、コンテナ、イメージ、Dockerfileは関連している

①コンテナはイメージから作られる。

docker container create <イメージ>
または
docker container run <イメージ>

②イメージはDockerfileから作られる。

docker image build

「Dockerfile → イメージ → コンテナ」の関係をしっかり理解しましょう。

タイトルとURLをコピーしました