Docker入門① -Dockerコンテナ ハンズオン-
Docker入門② -Dockerイメージ ハンズオン-
Docker入門③ -Docker Hub ハンズオン-
Docker入門④ -Docker Compose 概要-
Docker入門⑤ -Docker Compose ハンズオン-
はじめに
前回はコンテナ技術が利用される背景に触れ、Dockerコンテナの特徴や、実際にコンテナをデプロイする方法について紹介した。今回は、Dockerイメージと自分で作成したコンテナのデプロイ方法について紹介する。
Dockerイメージについて
Dockerイメージは、ファイルシステムの集合体で、複数の層で作られている。
例えば、前回の例では以下水色枠の部分が一つ一つの層になっている。
つまり、コンテナはこれらの層が一つ一つが重なりあって、イメージとしてできている。上記の例では、Docker runで実行したいコンテナの層をrepositoryなどから持ってきているがすでに存在しているので、各層でAlready existsとなっている。
コンテナの層のでき方(履歴情報)を確認することもできる
$ docker history
<出力結果>
ここまでDockerイメージについて紹介した。
次は実際にDocker イメージの設定ファイルであるDockerfileを作成し、イメージを立ち上げコンテナを実行してみよう!
Dockerfileについて
はじめにDockerfileの作成からコンテナができるまでの大まかな流れは以下の図のようになっている。
まず、Dockerfileの書き方を紹介する。
Dockerfileは、シンプルなテキスト情報から成り立っている。具体的にDockerfileというテキストデータを以下のように記述する。(ここでdockerfileフォルダに移っているのは個人的な管理上のため)
上図のDockerfileの書き方をまとめると以下のようになる。
FORM
利用するDockerイメージを指定
今回は、docker/whalesay:latestのイメージを指定(:latestはイメージに対するタグを指定しており、latestタグを指定)
RUN
コマンド実行(FROMで呼び出したイメージに対する事項)
今回は、Fortunesというコマンドに対し、インストールし更新を行う
CMD
デーモン実行(コンテナの中で何を実行させるか)
今回は、cowsayでクジラの絵を表現しつつ、fortunesメッセージを実行
他にも環境変数の設定やボリュームマウント、dockerファイル作成者情報などを指定することが可能である。
ここまでは単なるテキストデータだが、次のコマンドによりDockerイメージに作り替える。
$ docker build -t docker-whale-test .
docker-whale-test 自分で指定したイメージ名
. カレントディレクトリ(今回はdockerfileフォルダ配下にDockerfileファイルを置いているのでカレントディレクトリを指定)
<実行結果>
イメージに変わったことをdocker imagesにより確認
<出力結果>
指定した名前でイメージが存在する。
ここまででDocker imageの作成が完了した。
最後に、前回と同じようにdocker runコマンドを用いてコンテナを作成する。
$ docker run docker-whale-test
<出力結果>
クジラが出現し、吹き出し部分にはfortunesのメッセージが出現する。
まとめ
今回はDockerイメージを紹介し、Dockerfileの作成、イメージ化及びコンテナ起動までを紹介した。