1. Dockerfileとは?
- Dockerfileとは、Dockerのコンテナを作るための設計書です。
例えば、「Webアプリを動かす環境」を準備するには、次のような手順が必要です。
✅ OSの準備(Linuxなど)
✅ 必要なソフト(Python, Node.js, Javaなど)のインストール
✅ アプリのコードをコピーする
✅ アプリを実行する
普通は手動でセットアップする必要がありますが、Dockerfileを使えば、これらの作業をすべて自動化できます!
2. Dockerfileの基本構造
Dockerfileには、「何を準備するか」を1行ずつ書いていきます。
基本の書き方は、次のようになります。
# 1. ベースイメージを指定
FROM python:3.9
# 2. 作業ディレクトリを指定
WORKDIR /app
# 3. 必要なファイルをコピー
COPY . /app
# 4. 必要なパッケージをインストール
RUN pip install -r requirements.txt
# 5. 実行するコマンドを指定
CMD ["python", "app.py"]
3. Dockerfileの書き方(コマンド一覧)
① FROM(ベースイメージを指定)
Dockerコンテナは、必ず「ベース」となるOSや環境を持ちます。
FROM
を使って、どのベースイメージを使うか指定します。
✅ 例:Python環境を作る場合
FROM python:3.9
✅ 例:Node.jsの環境を作る場合
FROM node:16
✅ 例:Ubuntu(Linux OS)を使う場合
FROM ubuntu:latest
② WORKDIR(作業ディレクトリの指定)
コンテナの中で、どのフォルダを使うか指定します。
WORKDIR /app
この場合、コンテナの中に /app
というフォルダが作られ、
以降のコマンドは すべて /app
の中で実行 されます。
③ COPY(ファイルをコピーする)
ローカルのファイルをコンテナ内にコピーします。
COPY . /app
✔ 「.(カレントフォルダ)」の中身を、「/app」フォルダにコピー する
例えば、アプリのコードや設定ファイルをコンテナに入れたいときに使います。
④ RUN(コマンドを実行する)
コンテナを作るときに、一度だけ実行するコマンド を指定できます。
例えば、Pythonのライブラリをインストールする場合:
RUN pip install -r requirements.txt
✔ Pythonのパッケージをまとめてインストール
他にも、Ubuntuでパッケージをインストールするなら:
RUN apt-get update && apt-get install -y curl
✔ OSのパッケージを更新&curlをインストール
⑤ CMD(コンテナ起動時に実行するコマンド)
コンテナが起動したときに、実行するプログラム を指定します。
CMD ["python", "app.py"]
✔ Pythonで app.py
を実行
Node.jsなら:
CMD ["node", "server.js"]
✔ Node.jsで server.js
を実行
📌 CMDとRUNの違い
- RUN → コンテナを作るときに 一度だけ 実行する
- CMD → コンテナが起動する たびに 実行する
4. Dockerfileを使ってコンテナを作る手順
Dockerfileを作ったら、実際にコンテナを作って動かしてみましょう!
① Dockerfileを作る
まずは、プロジェクトフォルダに Dockerfile
を作ります。
my_project/
├── app.py
├── requirements.txt
├── Dockerfile ← ここに作る!
Dockerfileの内容は、例えば次のようにします。
FROM python:3.9
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
② Dockerイメージを作る
Dockerfileを使って、Dockerイメージ(設計図)を作成します。
docker build -t my-python-app .
✔ my-python-app
という名前のDockerイメージが作成される!
③ Dockerコンテナを起動
作成したイメージを使って、コンテナを起動します。
docker run -p 5000:5000 my-python-app
✔ アプリが http://localhost:5000
で動く!
5. まとめ
✅ Dockerfileとは? → コンテナを作るための設計書
✅ FROM
→ ベースとなる環境を指定する(Python, Node.js, Ubuntu など)
✅ WORKDIR
→ 作業フォルダを決める
✅ COPY
→ ローカルのファイルをコンテナ内にコピーする
✅ RUN
→ インストール作業を実行する(apt-get
や pip install
など)
✅ CMD
→ コンテナ起動時に実行するコマンドを指定する
✅ イメージを作ってコンテナを起動すればアプリが動く!
Dockerfileを使えば、どこでも同じ環境を簡単に作れるようになります!