【第二回】はじめてのDocker - Docker fileについて

こんにちは。ドイです。
前回はDockerの概要について触れました。
今回は、Docker イメージを作成するための、Docker fileについて触れていきたいと思います。

↓前回の記事 tech.arms-soft.co.jp

なぜDocker fileは必要か

Dockerはコンテナと呼ばれる仮想環境を作成し、
そのためにはイメージと呼ばれるものが必要になると前回学びました。

さて皆さん、コマンドラインツールを開いてください。
黒い画面でDockerコマンドを叩いて、Docker イメージを作成しましょう!
と言われてしまうと、Docker初心者の方には少し荷が重いですよね。
私も少し逃げたくなってしまいます。

本来、Dockerのコンテナを作るには、上記で述べたように コマンドラインツールを用いて、Dockerコマンドを叩き、 OSやphpのバージョンを指定してイメージを作成する必要があります。
しかし、初心者には荷が重い上に、複数人でプロジェクトを進めるにあたって 各々がコマンドを叩いて環境を用意するのは少し無駄な気もしますね。

そこで、登場しますのがDocker fileです。
Docker fileにコマンドを記述して、Docker buildすることによりDockerの環境を簡単に用意することができるのです。

Docker fileの中身

Docker fileに何が書かれているのかを、みていきたいと思います。
Dockerの公式サイトに、Docker fileで使う命令が紹介されています。

  • ADD
  • COPY
  • ENV
  • EXPOSE
  • FROM
  • LABEL
  • STOPSIGNAL
  • USER
  • VOLUME
  • WORKDIR
  • ONBUILD

今回は、FROM,RUNの二つのコマンドについてみていきたいと思います。

FROM

元となるイメージを指定します。

FROM centos

このように記述します。
FROMで指定するイメージがベースとなり、後述するRUNコマンドで差分を作成します。

RUN

コマンドを実行します。

RUN "Helo!!World!!"

簡単なこのような命令から

RUN yum install -y mysql

このようにイメージを作成することができます。
上記のように二つのコマンドを書くだけでも、
ベースとなるOSを指定して、mysqlをインストールするためのコマンドを書くことができました。

まとめ

FROMとRUNと二つのコマンドを書くことにより、ベースとなるイメージの作成、差分となるイメージの作成をすることができました。
Dockerイメージを作成するためのDocker fileですが、またこのDocker fileがある場所を
Docker-compose.ymlに記述する必要があります。

次回は、Docker-compose.ymlについて勉強していきたいと思います。