LVLPATH

日本最強無料プログラミングスクール

PATHSERVICEHANDS ONMANZI
Docker入門: Dockerfile

Docker入門: Dockerfile

🔹 Dockerfileとは?

Dockerfile は、Docker イメージを構築するための設計図です。

そのイメージを元にして、Docker コンテナが作られます。

中には、OSの指定やアプリのインストール、設定、起動コマンドなどが記述されます。

🔹 基本構文とよく使う命令

🔸 FROM

ベースとなるイメージを指定します。Dockerfile の最初に必須。

例:

FROM node:18

🔸 WORKDIR

作業ディレクトリを指定します。以降の命令の実行場所になります。

例:

WORKDIR /app

🔸 COPY

ホスト側のファイル/ディレクトリを、コンテナ内にコピーします。

例:

COPY . .

🔸 RUN

コンテナ内でコマンドを実行します(ビルド時に実行)。

例:

RUN npm install

🔸 CMD

コンテナ起動時に実行するデフォルトコマンドを指定します。

例:

CMD ["node", "index.js"]

🔸 EXPOSE

コンテナが使用するポートを指定します(実際に開放されるわけではない)。

例:

EXPOSE 3000

🔸 ENV

環境変数を設定します。

例:

ENV NODE_ENV=production

🔸 ARG

ビルド時に使える変数(環境変数ではない)を指定します。

例:

ARG VERSION=1.0.0

🔸 ENTRYPOINT

CMDと似ていますが、常に実行されるコマンドです。CMDと組み合わせることができます。

例:

ENTRYPOINT ["npm", "run"]
CMD ["start"]

🔹 例:Node.js アプリ用の Dockerfile

※ カレントディレクトリに、package.jsonが必要です

# ベースイメージの指定
FROM node:18

# 作業ディレクトリを作成・指定
WORKDIR /app

# ファイルをコピー
COPY package*.json ./

# 依存パッケージをインストール
RUN npm install

# ソースコードをコピー
COPY . .

# アプリが使うポートを指定
EXPOSE 3000

# アプリを起動
CMD ["node", "index.js"]

🔹 Dockerfileからイメージをビルドする

docker build -t my-node-app .
  • -t my-node-app:イメージに名前をつける
  • .:カレントディレクトリのDockerfileを使う

🔹 イメージからコンテナを起動

docker run -p 3000:3000 my-node-app
  • -p:ホストとコンテナのポートをマッピング

🔹 まとめ

  • DockerfileはアプリをDockerイメージに変換するレシピ
  • FROMから始まり、コマンドやファイル操作、起動方法を定義
  • docker build でイメージを作成し、docker run で起動
お問い合わせ