Day4:Dockerfile入門(最重要)前半
テーマ:自分のアプリを“誰でも動かせる形”にするための Dockerfile の基礎を理解する
Day4 の前半では、Docker 学習の中でも最重要テーマである
Dockerfile(ドッカーファイル)
を、初心者でも迷わず理解できるように丁寧に解説します。
今日のゴールは、
「自分の Node.js / Python アプリをコンテナ化できるようになること」
です。
Dockerfile を理解すると、あなたのアプリは
「どの PC でも、どの環境でも、同じ動作をする」
という強力な再現性を手に入れます。
Dockerfileとは何か
アプリを“どう動かすか”を Docker に教えるレシピ
Dockerfile は、
「このアプリを動かすには、こういう環境を作ってね」
と Docker に指示するためのファイルです。
料理でいうレシピ。
プラモデルでいう組み立て説明書。
ゲームでいうチュートリアルのようなもの。
Dockerfile があると、Docker はその通りに環境を作り、
どこでも同じアプリが動く ようになります。
まずは最小の Dockerfile を理解する
以下は Node.js アプリの最小構成です。
FROM node:18
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "app.js"]
Dockerfileこれを1行ずつ噛み砕いて説明します。
FROM:どんな環境を使うか指定する
FROM node:18
これは
「Node.js 18 が入った公式の環境を使ってね」
という意味です。
Dockerfile の最初の1行は必ず FROM です。
Python の場合はこうなります。
FROM python:3.11
DockerfileWORKDIR:作業フォルダを決める
WORKDIR /app
これは
「これからの作業は /app というフォルダで行うよ」
という宣言です。
以降の COPY や RUN はすべて /app を基準に動きます。
COPY:ホストのファイルをコンテナにコピー
COPY . .
これは
「今のフォルダ(ホスト)を /app(コンテナ)にコピーする」
という意味です。
例:
ホスト側に app.js があれば、コンテナ内の /app/app.js にコピーされます。
RUN:コンテナ内でコマンドを実行
RUN npm install
これは
「コンテナの中で npm install を実行して依存パッケージを入れてね」
という指示です。
Python ならこうなります。
RUN pip install -r requirements.txt
DockerfileCMD:コンテナ起動時に実行するコマンド
CMD [“node”, “app.js”]
これは
「コンテナが起動したら node app.js を実行してね」
という意味です。
Python ならこうなります。
CMD ["python", "app.py"]
DockerfileDockerfile の全体像を“絵”で理解する
Dockerfile の流れはこうです。
- どんな環境を使う? → FROM
- 作業フォルダは? → WORKDIR
- 何のファイルを入れる? → COPY
- 何をインストールする? → RUN
- 最後に何を実行する? → CMD
この流れを理解すれば、
どんな言語でも Dockerfile を書けるようになります。
Dockerfile を使ってアプリを動かす流れ
Step1:Docker イメージを作る
docker build -t myapp .
Step2:コンテナを起動
docker run -p 3000:3000 myapp
これで、あなたのアプリが Docker 上で動きます。
前半まとめ
あなたがここまで理解できていれば、Day4 前半はクリアです。
- Dockerfile は「アプリを動かすためのレシピ」
- FROM → WORKDIR → COPY → RUN → CMD の流れで構成される
- Node.js でも Python でも基本は同じ
- Dockerfile を書けば、どの PC でも同じ環境で動かせる
