このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Docker超入門:Dockerfileとcompose.yamlを連携してFlask環境を構築する①

Dockerfileとcompose.yamlを連携してFlask環境を構築する①
みなさんこんにちは!😄
今回は、Dockerfileとcompose.yamlを組み合わせてFlaskアプリを動かす環境を構築していきます。
Dockerを使って開発していると、WordPressやPHPみたいに「Docker Hubに公式イメージがあるもの」は、compose.yamlだけでサクッと動かせちゃいますよね。
でも、PythonでFlaskを使いたい場合はちょっと違います。
Pythonの公式イメージにはFlaskが入っていないので、
自分でFlask入りのイメージを作る必要があるんです。
そのときに登場するのが、Dockerfile です。
compose.yamlとDockerfileを連携させることで、柔軟に環境をカスタマイズできるようになります!
「Dockerfileとcompose.yamlを連携してFlask環境を構築する」では、「Dockerfile」と「compose.yaml」ファイルを連携させて、コンテナを構築していきます。
次の3部に分けて解説していきます。
- Dockerfileとcompose.yamlを連携してFlask環境を構築する①
- Dockerfileとcompose.yamlを連携してFlask環境を構築する②
- Dockerfileとcompose.yamlを連携してFlask環境を構築する③
まずは理解しよう!Dockerfileとは?
Dockerfileは、「Dockerイメージをどうやって作るか」を書く設計図のようなファイルです。
イメージのベース、追加パッケージ、コピーするファイル、起動コマンドなどを定義します。
つまり、「自分専用のイメージを作るレシピ」みたいなもの。
Dockerfileを使うと、環境の再現性が高まり、開発〜本番まで統一した環境を保つことができます。
Dockerfileの基本構成と命令一覧
| 命令 | 役割 | 説明例 |
|---|---|---|
| FROM | ベースイメージ指定 | 例:FROM python:3.9 |
| RUN | コマンド実行(パッケージのインストールなど) | RUN apt-get update && apt-get install -y git |
| COPY / ADD | ファイルやコードのコピー | COPY . /app |
| WORKDIR | 作業ディレクトリ指定 | WORKDIR /app |
| EXPOSE | 公開ポートの指定 | EXPOSE 8080 |
| CMD | コンテナ起動時に実行されるコマンド | CMD ["python", "app.py"] |
これらを組み合わせることで、
「どんな環境を作り、どう動かすのか」を1つのファイルで再現できます。
Flaskとは?
Flaskは、Pythonで動く軽量Webフレームワークです。
有名なDjangoよりもシンプルで、ちょっとしたAPIや小規模Webアプリを作るのにピッタリ。
Flaskは「必要なものだけを後から足す」設計なので、
開発者の自由度が高いのが特徴です。
公式サイトはこちら👇
👉 https://flask.palletsprojects.com/en/3.0.x/

作業前のクリーンアップ
Docker環境がごちゃついていると、古いコンテナやイメージが原因でうまく動かないことがあります。
なので、まずは一度整理しておきましょう!
docker system prune -a --volumes| オプション | 説明 |
|---|---|
| -a | すべての未使用イメージを削除 |
| --volumes | 使われていないボリュームも削除 |
もしボリュームなどのDockerオブジェクトが残っていれば、Docker Desktopを使ってGUIで削除しておきましょう。
コマンド操作が苦手な方には、Docker Desktopの方が視覚的で分かりやすいです。
💡 Docker Desktopを使えば、GUIで削除できるのでコマンドに慣れていない人も安心!
作業用ディレクトリを作ろう
次に、Flask環境を構築するフォルダを作成します。
cd desktop/docker
mkdir flask1
cd flask1実行結果
PS C:\Users\joeac> cd desktop/docker
PS C:\Users\joeac\Desktop\docker> mkdir flask1
Directory: C:\Users\joeac\Desktop\docker
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2025/10/12 1:00 flask1
PS C:\Users\joeac\Desktop\docker> cd flask1
PS C:\Users\joeac\Desktop\docker\flask1>VSCodeでDockerfileを作成
作業ディレクトリに移動したら、VSCodeを起動してDockerfileを作成します。
code DockerfileVSCodeが起動します。

VSCodeが開いたら、以下の内容を貼り付けて保存します👇
FROM python:3.12
WORKDIR /usr/src/app
RUN pip install flask==3.0.2
CMD ["flask", "run", "--host=0.0.0.0"]各命令の解説
| 命令 | 説明 |
|---|---|
| FROM | Python 3.12イメージをベースに利用します。 |
| WORKDIR | コンテナ内での作業ディレクトリを /usr/src/app に設定。 |
| RUN | Flask(バージョン3.0.2)をインストール。 |
| CMD | コンテナ起動時にFlaskを実行。--host=0.0.0.0 で外部アクセスを許可。 |
このCMD行は、CMD flask run --host=0.0.0.0 と書くこともできますが、
推奨は [ ] で囲み「,」で区切るJSON形式です。
この書き方だと、シェルの影響を受けず安全に実行できます。
ここまでの流れをまとめると…
| ステップ | 内容 |
|---|---|
| ① | 作業フォルダを作成(flask1) |
| ② | VSCodeでDockerfileを作成 |
| ③ | PythonベースのFlask実行環境を定義 |
| ④ | Flaskをインストールして起動設定を追加 |
これで、Flaskを動かすためのカスタムDockerイメージを作る準備が整いました!
イメージで理解する:Dockerfileの役割

まとめ
- Dockerfileは自分だけのDockerイメージを作るレシピ!
- Flaskのように公式イメージに含まれないパッケージは、Dockerfileでカスタマイズ。
RUN pip install flaskでFlaskを導入。CMD ["flask", "run", "--host=0.0.0.0"]で起動設定。
次回:「Dockerfileとcompose.yamlを連携してFlask環境を構築する②」では、
Flaskアプリのファイルを作って、compose.yamlを定義するところまでを解説します。
