【docker】Dockerfileからイメージ作成方法

Dockerfileを使ってimageを作成する方法を説明します。
dockerのコマンドでも作成できますが、imageを作成する方法をまとめるにはDockerfileを使う方がお勧めです。
メリットは、imageファイルがどのようなものかDockerfileで生成することにより明確になります。
また、拡張する際もベースのDockerfileを編集することで容易になります。
- Dockerfileを作成
- Dockerfileからimageを生成
1.Dockerfileを作成
テキストエディタで任意のフォルダに"Dockerfile"と言う名前のファイルを作成する。
Dockerfileに
- FROM:ベースとするimageファイル
- RUN:インストールものやコマンドなどを指定する※
- CMD:デフォルトで実行するコマンド
を指定します。
※: "&&" 複数のコマンドを実行する場合、"&&"で結合する。
※:"-y"でインストール中の確認をYesにする
※:"\"バックスラッシュで改行する
※:install コマンドを半角スペースを空けて連続して指定する
FROM ubuntu:latest
RUN apt-get update && apt-get install -y \
curl \
cvs \
nginx
CMD ["ls"]Dockerfileで指定可能な命令の一覧
| 命令 | 説明 | 書式 | 例 |
| FROM | ベースのイメージを指定 | FROM IMAGE:TAG | FROM ubuntu:latest |
| RUN | コマンド実行 | RUN ["実行バイナリ" "パラメータ1" "パラメータ2" ] | RUN apt-get update |
| CMD | コンテナ実行時の実行コマンド | CMD ["実行バイナリ" "パラメータ1" "パラメータ2" ] | CMD ["ls"] |
| COPY | ファイル(Directory)のコピー ホストPCにあるファイルをコンテナにコピー | COPY ["コピー元" "コピー先"] | COPY TEST /usr/local/bin/ |
| ADD | アーカイブのコピー&展開 ホストPCにあるアーカイブをコンテナで展開 | ADD ["アーカイブ元" "アーカイブの展開先"] | ADD TEST.tar /usr/local/bin/ |
| ENTRYPOINT | コンテナ実行時の実行コマンド ※CMDでパラメータを指定 | ENTRYPOINT ["実行バイナリ"] CMD ["パラメータ1" "パラメータ2" ] | ENTRYPOINT ["ls"] CMD ["--help"] |
| ENV | コンテナに登録する環境変数 | ENV <key1>=<value1> <key2>=<value2> ... | ENV KeyMaxSize=128 |
| WORKDIR | コンテナ操作作業ディレクトリ指定 | WORKDIR ディレクトリパス | WORKDIR /var/www |
2.Dockerfileからimageを生成
ターミナルを起動して「docker build .」をコマンド実行する。
これで「1.Dockerfileを作成 」で作成したDockerfileをもとにイメージファイルが生成される。
※実行するカレントディレクトリに"Dockerfile"がある場所で実行すること

・「docker images」でimageファイルが作成されているのか確認します。
名前を指定していないので、<none>になっています。
このイメージからコンテナを生成する際は、IMAGE IDを指定する。
・「docker run -it <IMAGE ID>」これでコンテナが生成されます。
2.1.Dockerfileを指定してimageを生成
カレントディレクトリにDockerfileがない場合、"-f"オプションを指定することが可能です。
ターミナルを起動して「docker build -f ../Dockerfile_dev .」をコマンド実行する。
カレントディレクトリの一つ上のディレクトリの"Dockerfile_dev"を使用してビルドします。


