はじめに
Dockerを使い始めると、最初は既存のDockerイメージを取得してコンテナを起動することが多いです。
しかし、実際の開発では「必要なツールを追加したい」「アプリケーションのファイルを含めたい」「チームで同じ環境を再現したい」といった場面が出てきます。
そのようなときに使うのが、Dockerイメージの作成手順をコードとして記述できる<strong>Dockerfile</strong>です。
たけどLinux環境で動かないといったケースも、開発工程からDockerを活用していくことで防ぎやすくなります。そして、開発工数の中で使っていた環境をそのまま本番環境に持っていくことも可能なため、環境差分が少なく、環境による問題を減らすことができます。
この記事では、<strong>Dockerfile 入門</strong>として、Dockerfileの基本的な役割、書き方、イメージのビルド方法、コンテナの起動方法を初心者向けに解説します。
Dockerfileを使うことで、開発環境を手作業で作るのではなく、ファイルに記述した内容から同じ環境を何度でも再現できます。
今回は、NginxのDockerイメージを例にしながら、Dockerfileを書いてイメージをビルドし、コンテナとして起動する流れを確認します。
Dockerfileの基本命令であるFROM、RUN、CMD、COPY、ENTRYPOINT、WORKDIRなどもあわせて紹介するため、これからDockerfileを学びたい方の入門記事として参考にしてください。
Dockerfileの書き方とビルド
先ほどのコマンドで起動したもののイメージの作成部分を書くとこんな感じです。
FROM nginx:1.29.5-alpine-slim
これでイメージを取得することができます。 それでは実行してみましょう。
docker build -t my-app .
これでイメージのビルドができます。 次にコンテナを起動させましょう。 これは先ほどのコマンドと同じです。
docker run --name nginx -p 8080:80 -d nginx
これで前回と同じようにhttp://localhost:8080/にアクセスして同じ画面が出ていたら成功です。
Dockerfieに記述できる命令
| 命令 | 説明 |
|---|---|
| FROM | 元となるイメージを指定。 |
| RUN | イメージのビルド時に実行するコマンド。 |
| CMD | コンテナ起動時に実行するコマンド。 |
| COPY | イメージにフォルダやファイルをコピーする。 |
| ENTRYPOINT | コンテナの起動時に実行。上書きはできない。 |
| WORKDIR | 作業ディレクトリを指定する。 |
まとめ
今回は、<strong>Dockerfile 入門</strong>として、Dockerfileの基本的な役割と、Dockerイメージを作成してコンテナを起動するまでの流れを解説しました。
Dockerfileを使うと、ベースとなるイメージの指定、コマンドの実行、ファイルのコピー、作業ディレクトリの指定などをコードとして管理できます。
Dockerfileを用意しておけば、手作業で環境を構築する必要が減り、チーム内でも同じ開発環境を再現しやすくなります。
また、作成したDockerfileを共有することで、開発環境と本番環境の差分を小さくでき、環境依存によるトラブルの防止にもつながります。
Dockerfileの基本は、まずFROMでベースイメージを指定し、必要に応じてRUN、COPY、WORKDIR、CMDなどの命令を組み合わせることです。
最初はシンプルなDockerfileから始めて、少しずつアプリケーション用の設定やファイル追加を試していくと理解しやすくなります。
Dockerfileを使いこなせるようになると、Dockerによる開発環境構築やアプリケーションの配布がより効率的になります。